@@ -56,7 +56,8 @@ use crate::ln::outbound_payment;
56
56
use crate :: ln:: outbound_payment:: { OutboundPayments , PaymentAttempts , PendingOutboundPayment , Retry } ;
57
57
use crate :: ln:: wire:: Encode ;
58
58
use crate :: chain:: keysinterface:: { EntropySource , KeysManager , NodeSigner , Recipient , SignerProvider , ChannelSigner } ;
59
- use crate :: offers:: offer:: OfferBuilder ;
59
+ use crate :: offers:: invoice_request:: InvoiceRequestBuilder ;
60
+ use crate :: offers:: offer:: { Offer , OfferBuilder } ;
60
61
use crate :: offers:: parse:: SemanticError ;
61
62
use crate :: offers:: refund:: RefundBuilder ;
62
63
use crate :: offers:: signer:: DerivedPubkey ;
@@ -5352,6 +5353,21 @@ where
5352
5353
RefundBuilder :: deriving_payer_id ( description, payer_id, amount_msats)
5353
5354
}
5354
5355
5356
+ /// Creates an [`InvoiceRequestBuilder`] such that the [`InvoiceRequest`] it builds is
5357
+ /// recognized by the [`OnionMessenger`] when handling [`Invoice`] messages for the request.
5358
+ ///
5359
+ /// [`OnionMessenger`]: crate::onion_message::OnionMessenger
5360
+ /// [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest
5361
+ /// [`Invoice`]: crate::offers::invoice::Invoice
5362
+ pub fn create_invoice_request_builder < ' a > (
5363
+ & self , offer : & ' a Offer
5364
+ ) -> Result < InvoiceRequestBuilder < ' a > , SemanticError > {
5365
+ let nonce = inbound_payment:: Nonce :: from_entropy_source ( & * self . entropy_source ) ;
5366
+ let payer_id = DerivedPubkey :: new ( & self . inbound_payment_key , nonce) ;
5367
+
5368
+ offer. request_invoice_deriving_payer_id ( payer_id)
5369
+ }
5370
+
5355
5371
/// Gets a payment secret and payment hash for use in an invoice given to a third party wishing
5356
5372
/// to pay us.
5357
5373
///
0 commit comments