2424//! use bitcoin::secp256k1::{KeyPair, PublicKey, Secp256k1, SecretKey};
2525//! use core::convert::{Infallible, TryFrom};
2626//! use lightning::offers::invoice_request::InvoiceRequest;
27+ //! use lightning::offers::merkle::TaggedHash;
2728//! use lightning::offers::refund::Refund;
2829//! use lightning::util::ser::Writeable;
2930//!
5556//! .allow_mpp()
5657//! .fallback_v0_p2wpkh(&wpubkey_hash)
5758//! .build()?
58- //! .sign::<_, Infallible>(|message| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
59+ //! .sign::<_, Infallible>(|message: &TaggedHash | Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
5960//! .expect("failed verifying signature")
6061//! .write(&mut buffer)
6162//! .unwrap();
8485//! .allow_mpp()
8586//! .fallback_v0_p2wpkh(&wpubkey_hash)
8687//! .build()?
87- //! .sign::<_, Infallible>(|message| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
88+ //! .sign::<_, Infallible>(|message: &TaggedHash | Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
8889//! .expect("failed verifying signature")
8990//! .write(&mut buffer)
9091//! .unwrap();
@@ -110,7 +111,7 @@ use crate::ln::features::{BlindedHopFeatures, Bolt12InvoiceFeatures};
110111use crate :: ln:: inbound_payment:: ExpandedKey ;
111112use crate :: ln:: msgs:: DecodeError ;
112113use crate :: offers:: invoice_request:: { INVOICE_REQUEST_PAYER_ID_TYPE , INVOICE_REQUEST_TYPES , IV_BYTES as INVOICE_REQUEST_IV_BYTES , InvoiceRequest , InvoiceRequestContents , InvoiceRequestTlvStream , InvoiceRequestTlvStreamRef } ;
113- use crate :: offers:: merkle:: { SignError , SignatureTlvStream , SignatureTlvStreamRef , TaggedHash , TlvStream , WithoutSignatures , self } ;
114+ use crate :: offers:: merkle:: { SignError , SignFunction , SignatureTlvStream , SignatureTlvStreamRef , TaggedHash , TlvStream , WithoutSignatures , self } ;
114115use crate :: offers:: offer:: { Amount , OFFER_TYPES , OfferTlvStream , OfferTlvStreamRef } ;
115116use crate :: offers:: parse:: { Bolt12ParseError , Bolt12SemanticError , ParsedMessage } ;
116117use crate :: offers:: payer:: { PAYER_METADATA_TYPE , PayerTlvStream , PayerTlvStreamRef } ;
@@ -360,8 +361,8 @@ impl<'a> InvoiceBuilder<'a, DerivedSigningPubkey> {
360361
361362 let keys = keys. unwrap ( ) ;
362363 let invoice = unsigned_invoice
363- . sign :: < _ , Infallible > (
364- |message| Ok ( secp_ctx. sign_schnorr_no_aux_rand ( & message. to_digest ( ) , & keys) )
364+ . sign :: < _ , Infallible > ( | message : & TaggedHash |
365+ Ok ( secp_ctx. sign_schnorr_no_aux_rand ( & message. to_digest ( ) , & keys) )
365366 )
366367 . unwrap ( ) ;
367368 Ok ( invoice)
@@ -383,10 +384,7 @@ impl<'a> UnsignedBolt12Invoice<'a> {
383384 /// Signs the invoice using the given function.
384385 ///
385386 /// This is not exported to bindings users as functions aren't currently mapped.
386- pub fn sign < F , E > ( self , sign : F ) -> Result < Bolt12Invoice , SignError < E > >
387- where
388- F : FnOnce ( & TaggedHash ) -> Result < Signature , E >
389- {
387+ pub fn sign < F : SignFunction < E > , E > ( self , sign : F ) -> Result < Bolt12Invoice , SignError < E > > {
390388 // Use the invoice_request bytes instead of the invoice_request TLV stream as the latter may
391389 // have contained unknown TLV records, which are not stored in `InvoiceRequestContents` or
392390 // `RefundContents`.
@@ -966,7 +964,7 @@ mod tests {
966964 use crate :: ln:: inbound_payment:: ExpandedKey ;
967965 use crate :: ln:: msgs:: DecodeError ;
968966 use crate :: offers:: invoice_request:: InvoiceRequestTlvStreamRef ;
969- use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , self } ;
967+ use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , TaggedHash , self } ;
970968 use crate :: offers:: offer:: { OfferBuilder , OfferTlvStreamRef , Quantity } ;
971969 use crate :: offers:: parse:: { Bolt12ParseError , Bolt12SemanticError } ;
972970 use crate :: offers:: payer:: PayerTlvStreamRef ;
@@ -1464,7 +1462,7 @@ mod tests {
14641462 . sign ( payer_sign) . unwrap ( )
14651463 . respond_with_no_std ( payment_paths ( ) , payment_hash ( ) , now ( ) ) . unwrap ( )
14661464 . build ( ) . unwrap ( )
1467- . sign ( |_| Err ( ( ) ) )
1465+ . sign ( |_: & TaggedHash | Err ( ( ) ) )
14681466 {
14691467 Ok ( _) => panic ! ( "expected error" ) ,
14701468 Err ( e) => assert_eq ! ( e, SignError :: Signing ( ( ) ) ) ,
0 commit comments