X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Foffers%2Finvoice_request.rs;h=f282075d9333cf1f9002154519474518036b9336;hb=6d5c952556aefa8f61c5a2c74ff72f426f5406ac;hp=4eed9fb7ee68f1ef51621c00173998167b56dc1f;hpb=407762446cd4abaab5ea9c1c96e8c181a0f63b86;p=rust-lightning diff --git a/lightning/src/offers/invoice_request.rs b/lightning/src/offers/invoice_request.rs index 4eed9fb7..f282075d 100644 --- a/lightning/src/offers/invoice_request.rs +++ b/lightning/src/offers/invoice_request.rs @@ -25,7 +25,6 @@ //! //! use bitcoin::network::constants::Network; //! use bitcoin::secp256k1::{KeyPair, PublicKey, Secp256k1, SecretKey}; -//! use core::convert::Infallible; //! use lightning::ln::features::OfferFeatures; //! use lightning::offers::invoice_request::UnsignedInvoiceRequest; //! use lightning::offers::offer::Offer; @@ -48,9 +47,9 @@ //! .quantity(5)? //! .payer_note("foo".to_string()) //! .build()? -//! .sign(|message: &UnsignedInvoiceRequest| -> Result<_, Infallible> { +//! .sign(|message: &UnsignedInvoiceRequest| //! Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) -//! }) +//! ) //! .expect("failed verifying signature") //! .write(&mut buffer) //! .unwrap(); @@ -62,7 +61,7 @@ use bitcoin::blockdata::constants::ChainHash; use bitcoin::network::constants::Network; use bitcoin::secp256k1::{KeyPair, PublicKey, Secp256k1, self}; use bitcoin::secp256k1::schnorr::Signature; -use core::convert::{AsRef, Infallible, TryFrom}; +use core::convert::{AsRef, TryFrom}; use core::ops::Deref; use crate::sign::EntropySource; use crate::io; @@ -228,9 +227,9 @@ macro_rules! invoice_request_derived_payer_id_builder_methods { ( let secp_ctx = secp_ctx.unwrap(); let keys = keys.unwrap(); let invoice_request = unsigned_invoice_request - .sign(|message: &UnsignedInvoiceRequest| -> Result<_, Infallible> { + .sign(|message: &UnsignedInvoiceRequest| Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - }) + ) .unwrap(); Ok(invoice_request) } @@ -496,31 +495,24 @@ pub struct UnsignedInvoiceRequest { /// A function for signing an [`UnsignedInvoiceRequest`]. pub trait SignInvoiceRequestFn { - /// Error type returned by the function. - type Error; - /// Signs a [`TaggedHash`] computed over the merkle root of `message`'s TLV stream. - fn sign_invoice_request(&self, message: &UnsignedInvoiceRequest) -> Result; + fn sign_invoice_request(&self, message: &UnsignedInvoiceRequest) -> Result; } -impl SignInvoiceRequestFn for F +impl SignInvoiceRequestFn for F where - F: Fn(&UnsignedInvoiceRequest) -> Result, + F: Fn(&UnsignedInvoiceRequest) -> Result, { - type Error = E; - - fn sign_invoice_request(&self, message: &UnsignedInvoiceRequest) -> Result { + fn sign_invoice_request(&self, message: &UnsignedInvoiceRequest) -> Result { self(message) } } -impl SignFn for F +impl SignFn for F where - F: SignInvoiceRequestFn, + F: SignInvoiceRequestFn, { - type Error = E; - - fn sign(&self, message: &UnsignedInvoiceRequest) -> Result { + fn sign(&self, message: &UnsignedInvoiceRequest) -> Result { self.sign_invoice_request(message) } } @@ -556,7 +548,7 @@ macro_rules! unsigned_invoice_request_sign_method { ( /// Note: The hash computation may have included unknown, odd TLV records. pub fn sign( $($self_mut)* $self: $self_type, sign: F - ) -> Result> { + ) -> Result { let pubkey = $self.contents.payer_id; let signature = merkle::sign_message(sign, &$self, pubkey)?; @@ -1111,7 +1103,7 @@ mod tests { use bitcoin::blockdata::constants::ChainHash; use bitcoin::network::constants::Network; use bitcoin::secp256k1::{KeyPair, Secp256k1, SecretKey, self}; - use core::convert::{Infallible, TryFrom}; + use core::convert::TryFrom; use core::num::NonZeroU64; #[cfg(feature = "std")] use core::time::Duration; @@ -1744,7 +1736,7 @@ mod tests { .sign(fail_sign) { Ok(_) => panic!("expected error"), - Err(e) => assert_eq!(e, SignError::Signing(())), + Err(e) => assert_eq!(e, SignError::Signing), } match OfferBuilder::new("foo".into(), recipient_pubkey()) @@ -2155,9 +2147,9 @@ mod tests { .build().unwrap() .request_invoice(vec![1; 32], keys.public_key()).unwrap() .build().unwrap() - .sign(|message: &UnsignedInvoiceRequest| -> Result<_, Infallible> { + .sign(|message: &UnsignedInvoiceRequest| Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - }) + ) .unwrap(); let mut encoded_invoice_request = Vec::new();