@@ -47,7 +47,6 @@ use crate::events::{self, Event, EventHandler, EventsProvider, InboundChannelFun
47
47
// construct one themselves.
48
48
use crate::ln::inbound_payment;
49
49
use crate::ln::types::ChannelId;
50
- use crate::offers::offer::Offer;
51
50
use crate::types::payment::{PaymentHash, PaymentPreimage, PaymentSecret};
52
51
use crate::ln::channel::{self, Channel, ChannelPhase, ChannelError, ChannelUpdateStatus, ShutdownResult, UpdateFulfillCommitFetch, OutboundV1Channel, InboundV1Channel, WithChannelContext, InboundV2Channel, InteractivelyFunded as _};
53
52
use crate::ln::channel_state::ChannelDetails;
@@ -65,14 +64,13 @@ use crate::ln::outbound_payment;
65
64
use crate::ln::outbound_payment::{OutboundPayments, PendingOutboundPayment, RetryableInvoiceRequest, SendAlongPathArgs, StaleExpiration};
66
65
use crate::offers::invoice::Bolt12Invoice;
67
66
use crate::offers::invoice::UnsignedBolt12Invoice;
68
- use crate::offers::invoice_request::{ InvoiceRequest, InvoiceRequestBuilder} ;
67
+ use crate::offers::invoice_request::InvoiceRequest;
69
68
use crate::offers::nonce::Nonce;
70
69
use crate::offers::parse::Bolt12SemanticError;
71
70
use crate::offers::signer;
72
71
#[cfg(async_payments)]
73
72
use crate::offers::static_invoice::StaticInvoice;
74
73
use crate::onion_message::async_payments::{AsyncPaymentsMessage, HeldHtlcAvailable, ReleaseHeldHtlc, AsyncPaymentsMessageHandler};
75
- use crate::onion_message::dns_resolution::HumanReadableName;
76
74
use crate::onion_message::messenger::{DefaultMessageRouter, Destination, MessageRouter, MessageSendInstructions, Responder, ResponseInstruction};
77
75
use crate::onion_message::offers::OffersMessage;
78
76
use crate::sign::{EntropySource, NodeSigner, Recipient, SignerProvider};
@@ -9627,13 +9625,6 @@ pub trait OffersMessageCommons {
9627
9625
max_total_routing_fee_msat: Option<u64>, amount_msats: u64,
9628
9626
) -> Result<(), ()>;
9629
9627
9630
- /// Internal pay_for_offer
9631
- fn pay_for_offer_intern<CPP: FnOnce(&InvoiceRequest, Nonce) -> Result<(), Bolt12SemanticError>> (
9632
- &self, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
9633
- payer_note: Option<String>, payment_id: PaymentId,
9634
- human_readable_name: Option<HumanReadableName>, create_pending_payment: CPP,
9635
- ) -> Result<(), Bolt12SemanticError>;
9636
-
9637
9628
#[cfg(feature = "dnssec")]
9638
9629
/// Amount for payment awaiting offer
9639
9630
fn amt_msats_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<u64, ()>;
@@ -9836,6 +9827,7 @@ where
9836
9827
}
9837
9828
9838
9829
fn add_new_awaiting_invoice(&self, payment_id: PaymentId, expiration: StaleExpiration, retry_strategy: Retry, max_total_routing_fee_msat: Option<u64>, retryable_invoice_request: Option<RetryableInvoiceRequest>) -> Result<(), ()> {
9830
+ let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9839
9831
self.pending_outbound_payments.add_new_awaiting_invoice (
9840
9832
payment_id, expiration, retry_strategy, max_total_routing_fee_msat, retryable_invoice_request,
9841
9833
)
@@ -9849,53 +9841,6 @@ where
9849
9841
self.pending_outbound_payments.add_new_awaiting_offer(payment_id, expiration, retry_strategy, max_total_routing_fee_msat, amount_msats)
9850
9842
}
9851
9843
9852
- fn pay_for_offer_intern<CPP: FnOnce(&InvoiceRequest, Nonce) -> Result<(), Bolt12SemanticError>>(
9853
- &self, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
9854
- payer_note: Option<String>, payment_id: PaymentId,
9855
- human_readable_name: Option<HumanReadableName>, create_pending_payment: CPP,
9856
- ) -> Result<(), Bolt12SemanticError> {
9857
- let expanded_key = &self.inbound_payment_key;
9858
- let entropy = &*self.entropy_source;
9859
- let secp_ctx = &self.secp_ctx;
9860
-
9861
- let nonce = Nonce::from_entropy_source(entropy);
9862
- let builder: InvoiceRequestBuilder<secp256k1::All> = offer
9863
- .request_invoice(expanded_key, nonce, secp_ctx, payment_id)?
9864
- .into();
9865
- let builder = builder.chain_hash(self.chain_hash)?;
9866
-
9867
- let builder = match quantity {
9868
- None => builder,
9869
- Some(quantity) => builder.quantity(quantity)?,
9870
- };
9871
- let builder = match amount_msats {
9872
- None => builder,
9873
- Some(amount_msats) => builder.amount_msats(amount_msats)?,
9874
- };
9875
- let builder = match payer_note {
9876
- None => builder,
9877
- Some(payer_note) => builder.payer_note(payer_note),
9878
- };
9879
- let builder = match human_readable_name {
9880
- None => builder,
9881
- Some(hrn) => builder.sourced_from_human_readable_name(hrn),
9882
- };
9883
- let invoice_request = builder.build_and_sign()?;
9884
-
9885
- let hmac = payment_id.hmac_for_offer_payment(nonce, expanded_key);
9886
- let context = MessageContext::Offers(
9887
- OffersContext::OutboundPayment { payment_id, nonce, hmac: Some(hmac) }
9888
- );
9889
- let reply_paths = self.create_blinded_paths(context)
9890
- .map_err(|_| Bolt12SemanticError::MissingPaths)?;
9891
-
9892
- let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9893
-
9894
- create_pending_payment(&invoice_request, nonce)?;
9895
-
9896
- self.enqueue_invoice_request(invoice_request, reply_paths)
9897
- }
9898
-
9899
9844
#[cfg(feature = "dnssec")]
9900
9845
fn amt_msats_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<u64, ()> {
9901
9846
self.pending_outbound_payments.amt_msats_for_payment_awaiting_offer(payment_id)
@@ -9905,6 +9850,7 @@ where
9905
9850
fn received_offer(
9906
9851
&self, payment_id: PaymentId, retryable_invoice_request: Option<RetryableInvoiceRequest>,
9907
9852
) -> Result<(), ()> {
9853
+ let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9908
9854
self.pending_outbound_payments.received_offer(payment_id, retryable_invoice_request)
9909
9855
}
9910
9856
}
0 commit comments