Skip to content

Commit ce842ab

Browse files
committed
f - fix failed closure parameter type inference
1 parent 63394d1 commit ce842ab

File tree

6 files changed

+48
-37
lines changed

6 files changed

+48
-37
lines changed

fuzz/src/invoice_request_deser.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use lightning::ln::PaymentHash;
1616
use lightning::ln::features::BlindedHopFeatures;
1717
use lightning::offers::invoice::{BlindedPayInfo, UnsignedBolt12Invoice};
1818
use lightning::offers::invoice_request::InvoiceRequest;
19+
use lightning::offers::merkle::TaggedHash;
1920
use lightning::offers::parse::Bolt12SemanticError;
2021
use lightning::util::ser::Writeable;
2122

@@ -37,17 +38,17 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
3738
let even_pubkey = x_only_pubkey.public_key(Parity::Even);
3839
if signing_pubkey == odd_pubkey || signing_pubkey == even_pubkey {
3940
unsigned_invoice
40-
.sign::<_, Infallible>(
41-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
42-
)
41+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
42+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
43+
})
4344
.unwrap()
4445
.write(&mut buffer)
4546
.unwrap();
4647
} else {
4748
unsigned_invoice
48-
.sign::<_, Infallible>(
49-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
50-
)
49+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
50+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
51+
})
5152
.unwrap_err();
5253
}
5354
}

fuzz/src/offer_deser.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use crate::utils::test_logger;
1212
use core::convert::{Infallible, TryFrom};
1313
use lightning::offers::invoice_request::UnsignedInvoiceRequest;
1414
use lightning::offers::offer::{Amount, Offer, Quantity};
15+
use lightning::offers::merkle::TaggedHash;
1516
use lightning::offers::parse::Bolt12SemanticError;
1617
use lightning::util::ser::Writeable;
1718

@@ -29,9 +30,9 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
2930

3031
if let Ok(invoice_request) = build_response(&offer, pubkey) {
3132
invoice_request
32-
.sign::<_, Infallible>(
33-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
34-
)
33+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
34+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
35+
})
3536
.unwrap()
3637
.write(&mut buffer)
3738
.unwrap();

fuzz/src/refund_deser.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use lightning::sign::EntropySource;
1515
use lightning::ln::PaymentHash;
1616
use lightning::ln::features::BlindedHopFeatures;
1717
use lightning::offers::invoice::{BlindedPayInfo, UnsignedBolt12Invoice};
18+
use lightning::offers::merkle::TaggedHash;
1819
use lightning::offers::parse::Bolt12SemanticError;
1920
use lightning::offers::refund::Refund;
2021
use lightning::util::ser::Writeable;
@@ -33,9 +34,9 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
3334

3435
if let Ok(invoice) = build_response(&refund, pubkey, &secp_ctx) {
3536
invoice
36-
.sign::<_, Infallible>(
37-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
38-
)
37+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
38+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
39+
})
3940
.unwrap()
4041
.write(&mut buffer)
4142
.unwrap();

lightning/src/offers/invoice.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
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
//!
@@ -55,7 +56,9 @@
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, _metadata: &[u8]| {
60+
//! Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
61+
//! })
5962
//! .expect("failed verifying signature")
6063
//! .write(&mut buffer)
6164
//! .unwrap();
@@ -84,7 +87,9 @@
8487
//! .allow_mpp()
8588
//! .fallback_v0_p2wpkh(&wpubkey_hash)
8689
//! .build()?
87-
//! .sign::<_, Infallible>(|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
90+
//! .sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
91+
//! Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
92+
//! })
8893
//! .expect("failed verifying signature")
8994
//! .write(&mut buffer)
9095
//! .unwrap();
@@ -360,9 +365,9 @@ impl<'a> InvoiceBuilder<'a, DerivedSigningPubkey> {
360365

361366
let keys = keys.unwrap();
362367
let invoice = unsigned_invoice
363-
.sign::<_, Infallible>(
364-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
365-
)
368+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
369+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
370+
})
366371
.unwrap();
367372
Ok(invoice)
368373
}
@@ -971,7 +976,7 @@ mod tests {
971976
use crate::ln::inbound_payment::ExpandedKey;
972977
use crate::ln::msgs::DecodeError;
973978
use crate::offers::invoice_request::InvoiceRequestTlvStreamRef;
974-
use crate::offers::merkle::{SignError, SignatureTlvStreamRef, self};
979+
use crate::offers::merkle::{SignError, SignatureTlvStreamRef, TaggedHash, self};
975980
use crate::offers::offer::{OfferBuilder, OfferTlvStreamRef, Quantity};
976981
use crate::offers::parse::{Bolt12ParseError, Bolt12SemanticError};
977982
use crate::offers::payer::PayerTlvStreamRef;
@@ -1469,7 +1474,7 @@ mod tests {
14691474
.sign(payer_sign).unwrap()
14701475
.respond_with_no_std(payment_paths(), payment_hash(), now()).unwrap()
14711476
.build().unwrap()
1472-
.sign(|_, _| Err(()))
1477+
.sign::<_, _>(|_message: &TaggedHash, _metadata: &[u8]| Err(()))
14731478
{
14741479
Ok(_) => panic!("expected error"),
14751480
Err(e) => assert_eq!(e, SignError::Signing(())),

lightning/src/offers/invoice_request.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
//! use core::convert::Infallible;
2929
//! use lightning::ln::features::OfferFeatures;
3030
//! use lightning::offers::offer::Offer;
31+
//! use lightning::offers::merkle::TaggedHash;
3132
//! use lightning::util::ser::Writeable;
3233
//!
3334
//! # fn parse() -> Result<(), lightning::offers::parse::Bolt12ParseError> {
@@ -44,7 +45,9 @@
4445
//! .quantity(5)?
4546
//! .payer_note("foo".to_string())
4647
//! .build()?
47-
//! .sign::<_, Infallible>(|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys)))
48+
//! .sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
49+
//! Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
50+
//! })
4851
//! .expect("failed verifying signature")
4952
//! .write(&mut buffer)
5053
//! .unwrap();
@@ -307,9 +310,9 @@ impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, DerivedPayerId
307310
let secp_ctx = secp_ctx.unwrap();
308311
let keys = keys.unwrap();
309312
let invoice_request = unsigned_invoice_request
310-
.sign::<_, Infallible>(
311-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
312-
)
313+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
314+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
315+
})
313316
.unwrap();
314317
Ok(invoice_request)
315318
}
@@ -1363,7 +1366,7 @@ mod tests {
13631366
.build().unwrap()
13641367
.request_invoice(vec![1; 32], payer_pubkey()).unwrap()
13651368
.build().unwrap()
1366-
.sign(|_, _| Err(()))
1369+
.sign::<_, _>(|_message: &TaggedHash, _metadata: &[u8]| Err(()))
13671370
{
13681371
Ok(_) => panic!("expected error"),
13691372
Err(e) => assert_eq!(e, SignError::Signing(())),
@@ -1777,9 +1780,9 @@ mod tests {
17771780
.build().unwrap()
17781781
.request_invoice(vec![1; 32], keys.public_key()).unwrap()
17791782
.build().unwrap()
1780-
.sign::<_, Infallible>(
1781-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
1782-
)
1783+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
1784+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
1785+
})
17831786
.unwrap();
17841787

17851788
let mut encoded_invoice_request = Vec::new();

lightning/src/offers/merkle.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ impl<'a> Writeable for WithoutSignatures<'a> {
268268

269269
#[cfg(test)]
270270
mod tests {
271-
use super::{SIGNATURE_TYPES, TlvStream, WithoutSignatures};
271+
use super::{SIGNATURE_TYPES, TaggedHash, TlvStream, WithoutSignatures};
272272

273273
use bitcoin::hashes::{Hash, sha256};
274274
use bitcoin::secp256k1::{KeyPair, Secp256k1, SecretKey};
@@ -317,9 +317,9 @@ mod tests {
317317
.build_unchecked()
318318
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
319319
.build_unchecked()
320-
.sign::<_, Infallible>(
321-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
322-
)
320+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
321+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
322+
})
323323
.unwrap();
324324
assert_eq!(
325325
invoice_request.to_string(),
@@ -352,9 +352,9 @@ mod tests {
352352
.build_unchecked()
353353
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
354354
.build_unchecked()
355-
.sign::<_, Infallible>(
356-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
357-
)
355+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
356+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
357+
})
358358
.unwrap();
359359

360360
let mut bytes_without_signature = Vec::new();
@@ -384,9 +384,9 @@ mod tests {
384384
.build_unchecked()
385385
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
386386
.build_unchecked()
387-
.sign::<_, Infallible>(
388-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
389-
)
387+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
388+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
389+
})
390390
.unwrap();
391391

392392
let tlv_stream = TlvStream::new(&invoice_request.bytes).range(0..1)

0 commit comments

Comments
 (0)