@@ -48,7 +48,6 @@ use crate::events::{Event, EventHandler, EventsProvider, MessageSendEvent, Messa
48
48
// construct one themselves.
49
49
use crate::ln::inbound_payment;
50
50
use crate::ln::types::ChannelId;
51
- use crate::offers::offer::Offer;
52
51
use crate::types::payment::{PaymentHash, PaymentPreimage, PaymentSecret};
53
52
use crate::ln::channel::{self, Channel, ChannelPhase, ChannelError, ChannelUpdateStatus, ShutdownResult, UpdateFulfillCommitFetch, OutboundV1Channel, InboundV1Channel, WithChannelContext};
54
53
use crate::ln::channel_state::ChannelDetails;
@@ -67,14 +66,13 @@ use crate::ln::outbound_payment::{OutboundPayments, PendingOutboundPayment, Retr
67
66
use crate::ln::wire::Encode;
68
67
use crate::offers::invoice::Bolt12Invoice;
69
68
use crate::offers::invoice::UnsignedBolt12Invoice;
70
- use crate::offers::invoice_request::{ InvoiceRequest, InvoiceRequestBuilder} ;
69
+ use crate::offers::invoice_request::InvoiceRequest;
71
70
use crate::offers::nonce::Nonce;
72
71
use crate::offers::parse::Bolt12SemanticError;
73
72
use crate::offers::signer;
74
73
#[cfg(async_payments)]
75
74
use crate::offers::static_invoice::StaticInvoice;
76
75
use crate::onion_message::async_payments::{AsyncPaymentsMessage, HeldHtlcAvailable, ReleaseHeldHtlc, AsyncPaymentsMessageHandler};
77
- use crate::onion_message::dns_resolution::HumanReadableName;
78
76
use crate::onion_message::messenger::{DefaultMessageRouter, Destination, MessageRouter, MessageSendInstructions, Responder, ResponseInstruction};
79
77
use crate::onion_message::offers::OffersMessage;
80
78
use crate::sign::{EntropySource, NodeSigner, Recipient, SignerProvider};
@@ -9316,13 +9314,6 @@ pub trait OffersMessageCommons {
9316
9314
max_total_routing_fee_msat: Option<u64>, amount_msats: u64,
9317
9315
) -> Result<(), ()>;
9318
9316
9319
- /// Internal pay_for_offer
9320
- fn pay_for_offer_intern<CPP: FnOnce(&InvoiceRequest, Nonce) -> Result<(), Bolt12SemanticError>> (
9321
- &self, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
9322
- payer_note: Option<String>, payment_id: PaymentId,
9323
- human_readable_name: Option<HumanReadableName>, create_pending_payment: CPP,
9324
- ) -> Result<(), Bolt12SemanticError>;
9325
-
9326
9317
#[cfg(feature = "dnssec")]
9327
9318
/// Amount for payment awaiting offer
9328
9319
fn amt_msats_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<u64, ()>;
@@ -9525,6 +9516,7 @@ where
9525
9516
}
9526
9517
9527
9518
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<(), ()> {
9519
+ let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9528
9520
self.pending_outbound_payments.add_new_awaiting_invoice (
9529
9521
payment_id, expiration, retry_strategy, max_total_routing_fee_msat, retryable_invoice_request,
9530
9522
)
@@ -9538,53 +9530,6 @@ where
9538
9530
self.pending_outbound_payments.add_new_awaiting_offer(payment_id, expiration, retry_strategy, max_total_routing_fee_msat, amount_msats)
9539
9531
}
9540
9532
9541
- fn pay_for_offer_intern<CPP: FnOnce(&InvoiceRequest, Nonce) -> Result<(), Bolt12SemanticError>>(
9542
- &self, offer: &Offer, quantity: Option<u64>, amount_msats: Option<u64>,
9543
- payer_note: Option<String>, payment_id: PaymentId,
9544
- human_readable_name: Option<HumanReadableName>, create_pending_payment: CPP,
9545
- ) -> Result<(), Bolt12SemanticError> {
9546
- let expanded_key = &self.inbound_payment_key;
9547
- let entropy = &*self.entropy_source;
9548
- let secp_ctx = &self.secp_ctx;
9549
-
9550
- let nonce = Nonce::from_entropy_source(entropy);
9551
- let builder: InvoiceRequestBuilder<secp256k1::All> = offer
9552
- .request_invoice(expanded_key, nonce, secp_ctx, payment_id)?
9553
- .into();
9554
- let builder = builder.chain_hash(self.chain_hash)?;
9555
-
9556
- let builder = match quantity {
9557
- None => builder,
9558
- Some(quantity) => builder.quantity(quantity)?,
9559
- };
9560
- let builder = match amount_msats {
9561
- None => builder,
9562
- Some(amount_msats) => builder.amount_msats(amount_msats)?,
9563
- };
9564
- let builder = match payer_note {
9565
- None => builder,
9566
- Some(payer_note) => builder.payer_note(payer_note),
9567
- };
9568
- let builder = match human_readable_name {
9569
- None => builder,
9570
- Some(hrn) => builder.sourced_from_human_readable_name(hrn),
9571
- };
9572
- let invoice_request = builder.build_and_sign()?;
9573
-
9574
- let hmac = payment_id.hmac_for_offer_payment(nonce, expanded_key);
9575
- let context = MessageContext::Offers(
9576
- OffersContext::OutboundPayment { payment_id, nonce, hmac: Some(hmac) }
9577
- );
9578
- let reply_paths = self.create_blinded_paths(context)
9579
- .map_err(|_| Bolt12SemanticError::MissingPaths)?;
9580
-
9581
- let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9582
-
9583
- create_pending_payment(&invoice_request, nonce)?;
9584
-
9585
- self.enqueue_invoice_request(invoice_request, reply_paths)
9586
- }
9587
-
9588
9533
#[cfg(feature = "dnssec")]
9589
9534
fn amt_msats_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<u64, ()> {
9590
9535
self.pending_outbound_payments.amt_msats_for_payment_awaiting_offer(payment_id)
@@ -9594,6 +9539,7 @@ where
9594
9539
fn received_offer(
9595
9540
&self, payment_id: PaymentId, retryable_invoice_request: Option<RetryableInvoiceRequest>,
9596
9541
) -> Result<(), ()> {
9542
+ let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
9597
9543
self.pending_outbound_payments.received_offer(payment_id, retryable_invoice_request)
9598
9544
}
9599
9545
}
0 commit comments