Skip to content

Commit 3da1f90

Browse files
committed
f - fix failed closure parameter type inference
1 parent 335f8f3 commit 3da1f90

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, UnsignedInvoice};
1818
use lightning::offers::invoice_request::InvoiceRequest;
19+
use lightning::offers::merkle::TaggedHash;
1920
use lightning::offers::parse::SemanticError;
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::SemanticError;
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, UnsignedInvoice};
18+
use lightning::offers::merkle::TaggedHash;
1819
use lightning::offers::parse::SemanticError;
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();
@@ -358,9 +363,9 @@ impl<'a> InvoiceBuilder<'a, DerivedSigningPubkey> {
358363

359364
let keys = keys.unwrap();
360365
let invoice = unsigned_invoice
361-
.sign::<_, Infallible>(
362-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
363-
)
366+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
367+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
368+
})
364369
.unwrap();
365370
Ok(invoice)
366371
}
@@ -968,7 +973,7 @@ mod tests {
968973
use crate::ln::inbound_payment::ExpandedKey;
969974
use crate::ln::msgs::DecodeError;
970975
use crate::offers::invoice_request::InvoiceRequestTlvStreamRef;
971-
use crate::offers::merkle::{SignError, SignatureTlvStreamRef, self};
976+
use crate::offers::merkle::{SignError, SignatureTlvStreamRef, TaggedHash, self};
972977
use crate::offers::offer::{OfferBuilder, OfferTlvStreamRef, Quantity};
973978
use crate::offers::parse::{ParseError, SemanticError};
974979
use crate::offers::payer::PayerTlvStreamRef;
@@ -1466,7 +1471,7 @@ mod tests {
14661471
.sign(payer_sign).unwrap()
14671472
.respond_with_no_std(payment_paths(), payment_hash(), now()).unwrap()
14681473
.build().unwrap()
1469-
.sign(|_, _| Err(()))
1474+
.sign::<_, _>(|_message: &TaggedHash, _metadata: &[u8]| Err(()))
14701475
{
14711476
Ok(_) => panic!("expected error"),
14721477
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::ParseError> {
@@ -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();
@@ -306,9 +309,9 @@ impl<'a, 'b, T: secp256k1::Signing> InvoiceRequestBuilder<'a, 'b, DerivedPayerId
306309
let secp_ctx = secp_ctx.unwrap();
307310
let keys = keys.unwrap();
308311
let invoice_request = unsigned_invoice_request
309-
.sign::<_, Infallible>(
310-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
311-
)
312+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
313+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
314+
})
312315
.unwrap();
313316
Ok(invoice_request)
314317
}
@@ -1362,7 +1365,7 @@ mod tests {
13621365
.build().unwrap()
13631366
.request_invoice(vec![1; 32], payer_pubkey()).unwrap()
13641367
.build().unwrap()
1365-
.sign(|_, _| Err(()))
1368+
.sign::<_, _>(|_message: &TaggedHash, _metadata: &[u8]| Err(()))
13661369
{
13671370
Ok(_) => panic!("expected error"),
13681371
Err(e) => assert_eq!(e, SignError::Signing(())),
@@ -1776,9 +1779,9 @@ mod tests {
17761779
.build().unwrap()
17771780
.request_invoice(vec![1; 32], keys.public_key()).unwrap()
17781781
.build().unwrap()
1779-
.sign::<_, Infallible>(
1780-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
1781-
)
1782+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
1783+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &keys))
1784+
})
17821785
.unwrap();
17831786

17841787
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
@@ -259,7 +259,7 @@ impl<'a> Writeable for WithoutSignatures<'a> {
259259

260260
#[cfg(test)]
261261
mod tests {
262-
use super::{SIGNATURE_TYPES, TlvStream, WithoutSignatures};
262+
use super::{SIGNATURE_TYPES, TaggedHash, TlvStream, WithoutSignatures};
263263

264264
use bitcoin::hashes::{Hash, sha256};
265265
use bitcoin::secp256k1::{KeyPair, Secp256k1, SecretKey};
@@ -308,9 +308,9 @@ mod tests {
308308
.build_unchecked()
309309
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
310310
.build_unchecked()
311-
.sign::<_, Infallible>(
312-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
313-
)
311+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
312+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
313+
})
314314
.unwrap();
315315
assert_eq!(
316316
invoice_request.to_string(),
@@ -343,9 +343,9 @@ mod tests {
343343
.build_unchecked()
344344
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
345345
.build_unchecked()
346-
.sign::<_, Infallible>(
347-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
348-
)
346+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
347+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
348+
})
349349
.unwrap();
350350

351351
let mut bytes_without_signature = Vec::new();
@@ -375,9 +375,9 @@ mod tests {
375375
.build_unchecked()
376376
.request_invoice(vec![0; 8], payer_keys.public_key()).unwrap()
377377
.build_unchecked()
378-
.sign::<_, Infallible>(
379-
|message, _| Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
380-
)
378+
.sign::<_, Infallible>(|message: &TaggedHash, _metadata: &[u8]| {
379+
Ok(secp_ctx.sign_schnorr_no_aux_rand(&message.to_digest(), &payer_keys))
380+
})
381381
.unwrap();
382382

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

0 commit comments

Comments
 (0)