diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index bc7042c275f..4f1c942aa41 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -63,7 +63,7 @@ use crate::ln::outbound_payment::{OutboundPayments, PaymentAttempts, PendingOutb use crate::ln::wire::Encode; use crate::offers::invoice::{BlindedPayInfo, Bolt12Invoice, DEFAULT_RELATIVE_EXPIRY, DerivedSigningPubkey, ExplicitSigningPubkey, InvoiceBuilder, UnsignedBolt12Invoice}; use crate::offers::invoice_error::InvoiceError; -use crate::offers::invoice_request::{DerivedPayerSigningPubkey, InvoiceRequestBuilder}; +use crate::offers::invoice_request::InvoiceRequestBuilder; use crate::offers::nonce::Nonce; use crate::offers::offer::{Offer, OfferBuilder}; use crate::offers::parse::Bolt12SemanticError; @@ -9002,7 +9002,7 @@ where let secp_ctx = &self.secp_ctx; let nonce = Nonce::from_entropy_source(entropy); - let builder: InvoiceRequestBuilder = offer + let builder: InvoiceRequestBuilder = offer .request_invoice(expanded_key, nonce, secp_ctx, payment_id)? .into(); let builder = builder.chain_hash(self.chain_hash)?; diff --git a/lightning/src/offers/invoice_request.rs b/lightning/src/offers/invoice_request.rs index 9fa83e39d3c..45d61ee5e53 100644 --- a/lightning/src/offers/invoice_request.rs +++ b/lightning/src/offers/invoice_request.rs @@ -49,8 +49,8 @@ //! let payment_id = PaymentId([1; 32]); //! let mut buffer = Vec::new(); //! -//! # use lightning::offers::invoice_request::{DerivedPayerSigningPubkey, InvoiceRequestBuilder}; -//! # >::from( +//! # use lightning::offers::invoice_request::InvoiceRequestBuilder; +//! # >::from( //! "lno1qcp4256ypq" //! .parse::()? //! .request_invoice(&expanded_key, nonce, &secp_ctx, payment_id)? @@ -111,11 +111,10 @@ pub(super) const IV_BYTES: &[u8; IV_LEN] = b"LDK Invreq ~~~~~"; /// This is not exported to bindings users as builder patterns don't map outside of move semantics. /// /// [module-level documentation]: self -pub struct InvoiceRequestBuilder<'a, 'b, P: PayerSigningPubkeyStrategy, T: secp256k1::Signing> { +pub struct InvoiceRequestBuilder<'a, 'b, T: secp256k1::Signing> { offer: &'a Offer, invoice_request: InvoiceRequestContentsWithoutPayerSigningPubkey, payer_signing_pubkey: Option, - payer_signing_pubkey_strategy: core::marker::PhantomData

, secp_ctx: Option<&'b Secp256k1>, } @@ -129,22 +128,9 @@ pub struct InvoiceRequestWithDerivedPayerSigningPubkeyBuilder<'a, 'b> { offer: &'a Offer, invoice_request: InvoiceRequestContentsWithoutPayerSigningPubkey, payer_signing_pubkey: Option, - payer_signing_pubkey_strategy: core::marker::PhantomData, secp_ctx: Option<&'b Secp256k1>, } -/// Indicates how [`InvoiceRequest::payer_signing_pubkey`] will be set. -/// -/// This is not exported to bindings users as builder patterns don't map outside of move semantics. -pub trait PayerSigningPubkeyStrategy {} - -/// [`InvoiceRequest::payer_signing_pubkey`] will be derived. -/// -/// This is not exported to bindings users as builder patterns don't map outside of move semantics. -pub struct DerivedPayerSigningPubkey {} - -impl PayerSigningPubkeyStrategy for DerivedPayerSigningPubkey {} - macro_rules! invoice_request_derived_payer_signing_pubkey_builder_methods { ( $self: ident, $self_type: ty, $secp_context: ty ) => { @@ -160,7 +146,6 @@ macro_rules! invoice_request_derived_payer_signing_pubkey_builder_methods { ( offer, invoice_request: Self::create_contents(offer, metadata), payer_signing_pubkey: None, - payer_signing_pubkey_strategy: core::marker::PhantomData, secp_ctx: Some(secp_ctx), } } @@ -397,11 +382,8 @@ macro_rules! invoice_request_builder_test_methods { ( } } } -impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, DerivedPayerSigningPubkey, T> { +impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, T> { invoice_request_derived_payer_signing_pubkey_builder_methods!(self, Self, T); -} - -impl<'a, 'b, P: PayerSigningPubkeyStrategy, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, P, T> { invoice_request_builder_methods!(self, Self, Self, self, T, mut); #[cfg(test)] @@ -423,14 +405,14 @@ impl<'a, 'b> InvoiceRequestWithDerivedPayerSigningPubkeyBuilder<'a, 'b> { #[cfg(c_bindings)] impl<'a, 'b> From> -for InvoiceRequestBuilder<'a, 'b, DerivedPayerSigningPubkey, secp256k1::All> { +for InvoiceRequestBuilder<'a, 'b, secp256k1::All> { fn from(builder: InvoiceRequestWithDerivedPayerSigningPubkeyBuilder<'a, 'b>) -> Self { let InvoiceRequestWithDerivedPayerSigningPubkeyBuilder { - offer, invoice_request, payer_signing_pubkey, payer_signing_pubkey_strategy, secp_ctx, + offer, invoice_request, payer_signing_pubkey, secp_ctx, } = builder; Self { - offer, invoice_request, payer_signing_pubkey, payer_signing_pubkey_strategy, secp_ctx, + offer, invoice_request, payer_signing_pubkey, secp_ctx, } } } diff --git a/lightning/src/offers/offer.rs b/lightning/src/offers/offer.rs index 6d6f18e394e..73ed26dd6db 100644 --- a/lightning/src/offers/offer.rs +++ b/lightning/src/offers/offer.rs @@ -99,7 +99,7 @@ use crate::util::string::PrintableString; #[cfg(not(c_bindings))] use { - crate::offers::invoice_request::{DerivedPayerSigningPubkey, InvoiceRequestBuilder}, + crate::offers::invoice_request::InvoiceRequestBuilder, }; #[cfg(c_bindings)] use { @@ -747,7 +747,7 @@ macro_rules! request_invoice_derived_signing_pubkey { ($self: ident, $builder: t #[cfg(not(c_bindings))] impl Offer { - request_invoice_derived_signing_pubkey!(self, InvoiceRequestBuilder<'a, 'b, DerivedPayerSigningPubkey, T>); + request_invoice_derived_signing_pubkey!(self, InvoiceRequestBuilder<'a, 'b, T>); } #[cfg(c_bindings)]