2525//!
2626//! use bitcoin::network::constants::Network;
2727//! use bitcoin::secp256k1::{KeyPair, PublicKey, Secp256k1, SecretKey};
28- //! use core::convert::Infallible;
2928//! use lightning::ln::features::OfferFeatures;
3029//! use lightning::offers::invoice_request::UnsignedInvoiceRequest;
3130//! use lightning::offers::offer::Offer;
4847//! .quantity(5)?
4948//! .payer_note("foo".to_string())
5049//! .build()?
51- //! .sign(|message: &UnsignedInvoiceRequest| -> Result<_, Infallible> {
50+ //! .sign(|message: &UnsignedInvoiceRequest|
5251//! Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys))
53- //! } )
52+ //! )
5453//! .expect("failed verifying signature")
5554//! .write(&mut buffer)
5655//! .unwrap();
@@ -62,7 +61,7 @@ use bitcoin::blockdata::constants::ChainHash;
6261use bitcoin:: network:: constants:: Network ;
6362use bitcoin:: secp256k1:: { KeyPair , PublicKey , Secp256k1 , self } ;
6463use bitcoin:: secp256k1:: schnorr:: Signature ;
65- use core:: convert:: { AsRef , Infallible , TryFrom } ;
64+ use core:: convert:: { AsRef , TryFrom } ;
6665use core:: ops:: Deref ;
6766use crate :: sign:: EntropySource ;
6867use crate :: io;
@@ -228,9 +227,9 @@ macro_rules! invoice_request_derived_payer_id_builder_methods { (
228227 let secp_ctx = secp_ctx. unwrap( ) ;
229228 let keys = keys. unwrap( ) ;
230229 let invoice_request = unsigned_invoice_request
231- . sign( |message: & UnsignedInvoiceRequest | -> Result <_ , Infallible > {
230+ . sign( |message: & UnsignedInvoiceRequest |
232231 Ok ( secp_ctx. sign_schnorr_no_aux_rand( message. as_ref( ) . as_digest( ) , & keys) )
233- } )
232+ )
234233 . unwrap( ) ;
235234 Ok ( invoice_request)
236235 }
@@ -496,31 +495,24 @@ pub struct UnsignedInvoiceRequest {
496495
497496/// A function for signing an [`UnsignedInvoiceRequest`].
498497pub trait SignInvoiceRequestFn {
499- /// Error type returned by the function.
500- type Error ;
501-
502498 /// Signs a [`TaggedHash`] computed over the merkle root of `message`'s TLV stream.
503- fn sign_invoice_request ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , Self :: Error > ;
499+ fn sign_invoice_request ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , ( ) > ;
504500}
505501
506- impl < F , E > SignInvoiceRequestFn for F
502+ impl < F > SignInvoiceRequestFn for F
507503where
508- F : Fn ( & UnsignedInvoiceRequest ) -> Result < Signature , E > ,
504+ F : Fn ( & UnsignedInvoiceRequest ) -> Result < Signature , ( ) > ,
509505{
510- type Error = E ;
511-
512- fn sign_invoice_request ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , E > {
506+ fn sign_invoice_request ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , ( ) > {
513507 self ( message)
514508 }
515509}
516510
517- impl < F , E > SignFn < UnsignedInvoiceRequest > for F
511+ impl < F > SignFn < UnsignedInvoiceRequest > for F
518512where
519- F : SignInvoiceRequestFn < Error = E > ,
513+ F : SignInvoiceRequestFn ,
520514{
521- type Error = E ;
522-
523- fn sign ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , Self :: Error > {
515+ fn sign ( & self , message : & UnsignedInvoiceRequest ) -> Result < Signature , ( ) > {
524516 self . sign_invoice_request ( message)
525517 }
526518}
@@ -556,7 +548,7 @@ macro_rules! unsigned_invoice_request_sign_method { (
556548 /// Note: The hash computation may have included unknown, odd TLV records.
557549 pub fn sign<F : SignInvoiceRequestFn >(
558550 $( $self_mut) * $self: $self_type, sign: F
559- ) -> Result <InvoiceRequest , SignError < F :: Error > > {
551+ ) -> Result <InvoiceRequest , SignError > {
560552 let pubkey = $self. contents. payer_id;
561553 let signature = merkle:: sign_message( sign, & $self, pubkey) ?;
562554
@@ -1111,7 +1103,7 @@ mod tests {
11111103 use bitcoin:: blockdata:: constants:: ChainHash ;
11121104 use bitcoin:: network:: constants:: Network ;
11131105 use bitcoin:: secp256k1:: { KeyPair , Secp256k1 , SecretKey , self } ;
1114- use core:: convert:: { Infallible , TryFrom } ;
1106+ use core:: convert:: TryFrom ;
11151107 use core:: num:: NonZeroU64 ;
11161108 #[ cfg( feature = "std" ) ]
11171109 use core:: time:: Duration ;
@@ -1744,7 +1736,7 @@ mod tests {
17441736 . sign ( fail_sign)
17451737 {
17461738 Ok ( _) => panic ! ( "expected error" ) ,
1747- Err ( e) => assert_eq ! ( e, SignError :: Signing ( ( ) ) ) ,
1739+ Err ( e) => assert_eq ! ( e, SignError :: Signing ) ,
17481740 }
17491741
17501742 match OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
@@ -2155,9 +2147,9 @@ mod tests {
21552147 . build ( ) . unwrap ( )
21562148 . request_invoice ( vec ! [ 1 ; 32 ] , keys. public_key ( ) ) . unwrap ( )
21572149 . build ( ) . unwrap ( )
2158- . sign ( |message : & UnsignedInvoiceRequest | -> Result < _ , Infallible > {
2150+ . sign ( |message : & UnsignedInvoiceRequest |
21592151 Ok ( secp_ctx. sign_schnorr_no_aux_rand ( message. as_ref ( ) . as_digest ( ) , & keys) )
2160- } )
2152+ )
21612153 . unwrap ( ) ;
21622154
21632155 let mut encoded_invoice_request = Vec :: new ( ) ;
0 commit comments