Merge pull request #3082 from valentinewallace/2024-04-bolt12-keysend-invoice
[rust-lightning] / fuzz / src / offer_deser.rs
index 213742d8c085b86aba02f0188df4b0d6e08240e3..84b69d3fcd31f5dc82bbf1bdf60faa4036283f25 100644 (file)
@@ -7,12 +7,12 @@
 // You may not use this file except in accordance with one or both of these
 // licenses.
 
-use bitcoin::secp256k1::{KeyPair, PublicKey, Secp256k1, SecretKey};
 use crate::utils::test_logger;
-use core::convert::{Infallible, TryFrom};
+use bitcoin::secp256k1::{Keypair, PublicKey, Secp256k1, SecretKey};
+use core::convert::TryFrom;
 use lightning::offers::invoice_request::UnsignedInvoiceRequest;
 use lightning::offers::offer::{Amount, Offer, Quantity};
-use lightning::offers::parse::SemanticError;
+use lightning::offers::parse::Bolt12SemanticError;
 use lightning::util::ser::Writeable;
 
 #[inline]
@@ -23,15 +23,15 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
                assert_eq!(data, bytes);
 
                let secp_ctx = Secp256k1::new();
-               let keys = KeyPair::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
+               let keys = Keypair::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
                let pubkey = PublicKey::from(keys);
                let mut buffer = Vec::new();
 
                if let Ok(invoice_request) = build_response(&offer, pubkey) {
                        invoice_request
-                               .sign::<_, Infallible>(
-                                       |digest| Ok(secp_ctx.sign_schnorr_no_aux_rand(digest, &keys))
-                               )
+                               .sign(|message: &UnsignedInvoiceRequest| {
+                                       Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys))
+                               })
                                .unwrap()
                                .write(&mut buffer)
                                .unwrap();
@@ -39,15 +39,15 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
        }
 }
 
-fn build_response<'a>(
-       offer: &'a Offer, pubkey: PublicKey
-) -> Result<UnsignedInvoiceRequest<'a>, SemanticError> {
+fn build_response(
+       offer: &Offer, pubkey: PublicKey,
+) -> Result<UnsignedInvoiceRequest, Bolt12SemanticError> {
        let mut builder = offer.request_invoice(vec![42; 64], pubkey)?;
 
        builder = match offer.amount() {
                None => builder.amount_msats(1000).unwrap(),
                Some(Amount::Bitcoin { amount_msats }) => builder.amount_msats(amount_msats + 1)?,
-               Some(Amount::Currency { .. }) => return Err(SemanticError::UnsupportedCurrency),
+               Some(Amount::Currency { .. }) => return Err(Bolt12SemanticError::UnsupportedCurrency),
        };
 
        builder = match offer.supported_quantity() {