@@ -144,6 +144,14 @@ impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, ExplicitPayerI
144
144
secp_ctx : None ,
145
145
}
146
146
}
147
+
148
+ /// Builds an unsigned [`InvoiceRequest`] after checking for valid semantics. It can be signed
149
+ /// by [`UnsignedInvoiceRequest::sign`].
150
+ pub fn build ( self ) -> Result < UnsignedInvoiceRequest , Bolt12SemanticError > {
151
+ let ( unsigned_invoice_request, keys, _) = self . build_with_checks ( ) ?;
152
+ debug_assert ! ( keys. is_none( ) ) ;
153
+ Ok ( unsigned_invoice_request)
154
+ }
147
155
}
148
156
149
157
impl < ' a , ' b , T : secp256k1:: Signing > InvoiceRequestBuilder < ' a , ' b , DerivedPayerId , T > {
@@ -163,6 +171,21 @@ impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, DerivedPayerId
163
171
secp_ctx : Some ( secp_ctx) ,
164
172
}
165
173
}
174
+
175
+ /// Builds a signed [`InvoiceRequest`] after checking for valid semantics.
176
+ pub fn build_and_sign ( self ) -> Result < InvoiceRequest , Bolt12SemanticError > {
177
+ let ( unsigned_invoice_request, keys, secp_ctx) = self . build_with_checks ( ) ?;
178
+ debug_assert ! ( keys. is_some( ) ) ;
179
+
180
+ let secp_ctx = secp_ctx. unwrap ( ) ;
181
+ let keys = keys. unwrap ( ) ;
182
+ let invoice_request = unsigned_invoice_request
183
+ . sign :: < _ , Infallible > (
184
+ |message| Ok ( secp_ctx. sign_schnorr_no_aux_rand ( message. as_ref ( ) . as_digest ( ) , & keys) )
185
+ )
186
+ . unwrap ( ) ;
187
+ Ok ( invoice_request)
188
+ }
166
189
}
167
190
168
191
impl < ' a , ' b , P : PayerIdStrategy , T : secp256k1:: Signing > InvoiceRequestBuilder < ' a , ' b , P , T > {
@@ -301,33 +324,6 @@ impl<'a, 'b, P: PayerIdStrategy, T: secp256k1::Signing> InvoiceRequestBuilder<'a
301
324
}
302
325
}
303
326
304
- impl < ' a , ' b , T : secp256k1:: Signing > InvoiceRequestBuilder < ' a , ' b , ExplicitPayerId , T > {
305
- /// Builds an unsigned [`InvoiceRequest`] after checking for valid semantics. It can be signed
306
- /// by [`UnsignedInvoiceRequest::sign`].
307
- pub fn build ( self ) -> Result < UnsignedInvoiceRequest , Bolt12SemanticError > {
308
- let ( unsigned_invoice_request, keys, _) = self . build_with_checks ( ) ?;
309
- debug_assert ! ( keys. is_none( ) ) ;
310
- Ok ( unsigned_invoice_request)
311
- }
312
- }
313
-
314
- impl < ' a , ' b , T : secp256k1:: Signing > InvoiceRequestBuilder < ' a , ' b , DerivedPayerId , T > {
315
- /// Builds a signed [`InvoiceRequest`] after checking for valid semantics.
316
- pub fn build_and_sign ( self ) -> Result < InvoiceRequest , Bolt12SemanticError > {
317
- let ( unsigned_invoice_request, keys, secp_ctx) = self . build_with_checks ( ) ?;
318
- debug_assert ! ( keys. is_some( ) ) ;
319
-
320
- let secp_ctx = secp_ctx. unwrap ( ) ;
321
- let keys = keys. unwrap ( ) ;
322
- let invoice_request = unsigned_invoice_request
323
- . sign :: < _ , Infallible > (
324
- |message| Ok ( secp_ctx. sign_schnorr_no_aux_rand ( message. as_ref ( ) . as_digest ( ) , & keys) )
325
- )
326
- . unwrap ( ) ;
327
- Ok ( invoice_request)
328
- }
329
- }
330
-
331
327
#[ cfg( test) ]
332
328
impl < ' a , ' b , P : PayerIdStrategy , T : secp256k1:: Signing > InvoiceRequestBuilder < ' a , ' b , P , T > {
333
329
fn chain_unchecked ( mut self , network : Network ) -> Self {
0 commit comments