Skip to content

Commit 840d4a5

Browse files
committed
f - create_invoice_request_builder
1 parent 343601a commit 840d4a5

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

lightning/src/ln/channelmanager.rs

+17-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ use crate::ln::outbound_payment;
5656
use crate::ln::outbound_payment::{OutboundPayments, PaymentAttempts, PendingOutboundPayment, Retry};
5757
use crate::ln::wire::Encode;
5858
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};
6061
use crate::offers::parse::SemanticError;
6162
use crate::offers::refund::RefundBuilder;
6263
use crate::offers::signer::DerivedPubkey;
@@ -5352,6 +5353,21 @@ where
53525353
RefundBuilder::deriving_payer_id(description, payer_id, amount_msats)
53535354
}
53545355

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+
53555371
/// Gets a payment secret and payment hash for use in an invoice given to a third party wishing
53565372
/// to pay us.
53575373
///

0 commit comments

Comments
 (0)