@@ -54,7 +54,8 @@ use crate::ln::outbound_payment;
54
54
use crate :: ln:: outbound_payment:: { OutboundPayments , PaymentAttempts , PendingOutboundPayment } ;
55
55
use crate :: ln:: wire:: Encode ;
56
56
use crate :: chain:: keysinterface:: { EntropySource , KeysManager , NodeSigner , Recipient , SignerProvider , ChannelSigner , WriteableEcdsaChannelSigner } ;
57
- use crate :: offers:: offer:: OfferBuilder ;
57
+ use crate :: offers:: invoice_request:: InvoiceRequestBuilder ;
58
+ use crate :: offers:: offer:: { Offer , OfferBuilder } ;
58
59
use crate :: offers:: parse:: SemanticError ;
59
60
use crate :: offers:: refund:: RefundBuilder ;
60
61
use crate :: util:: config:: { UserConfig , ChannelConfig } ;
@@ -5462,6 +5463,20 @@ where
5462
5463
RefundBuilder :: deriving_payer_id ( description, node_id, expanded_key, nonce, amount_msats)
5463
5464
}
5464
5465
5466
+ /// Creates an [`InvoiceRequestBuilder`] such that the [`InvoiceRequest`] it builds is
5467
+ /// recognized by the [`OnionMessenger`] when handling [`Invoice`] messages for the request.
5468
+ ///
5469
+ /// [`OnionMessenger`]: crate::onion_message::OnionMessenger
5470
+ /// [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest
5471
+ /// [`Invoice`]: crate::offers::invoice::Invoice
5472
+ pub fn create_invoice_request_builder < ' a > (
5473
+ & self , offer : & ' a Offer
5474
+ ) -> Result < InvoiceRequestBuilder < ' a > , SemanticError > {
5475
+ let nonce = inbound_payment:: Nonce :: from_entropy_source ( & * self . entropy_source ) ;
5476
+
5477
+ offer. request_invoice_deriving_payer_id ( & self . inbound_payment_key , nonce)
5478
+ }
5479
+
5465
5480
/// Gets a payment secret and payment hash for use in an invoice given to a third party wishing
5466
5481
/// to pay us.
5467
5482
///
0 commit comments