diff --git a/fuzz/src/base32.rs b/fuzz/src/base32.rs index 8171f19f637..c0d71dd7b33 100644 --- a/fuzz/src/base32.rs +++ b/fuzz/src/base32.rs @@ -16,9 +16,11 @@ pub fn do_test(data: &[u8]) { if let Ok(s) = std::str::from_utf8(data) { let first_decoding = base32::Alphabet::RFC4648 { padding: true }.decode(s); if let Ok(first_decoding) = first_decoding { - let encoding_response = base32::Alphabet::RFC4648 { padding: true }.encode(&first_decoding); + let encoding_response = + base32::Alphabet::RFC4648 { padding: true }.encode(&first_decoding); assert_eq!(encoding_response, s.to_ascii_uppercase()); - let second_decoding = base32::Alphabet::RFC4648 { padding: true }.decode(&encoding_response).unwrap(); + let second_decoding = + base32::Alphabet::RFC4648 { padding: true }.decode(&encoding_response).unwrap(); assert_eq!(first_decoding, second_decoding); } } @@ -26,19 +28,23 @@ pub fn do_test(data: &[u8]) { if let Ok(s) = std::str::from_utf8(data) { let first_decoding = base32::Alphabet::RFC4648 { padding: false }.decode(s); if let Ok(first_decoding) = first_decoding { - let encoding_response = base32::Alphabet::RFC4648 { padding: false }.encode(&first_decoding); + let encoding_response = + base32::Alphabet::RFC4648 { padding: false }.encode(&first_decoding); assert_eq!(encoding_response, s.to_ascii_uppercase()); - let second_decoding = base32::Alphabet::RFC4648 { padding: false }.decode(&encoding_response).unwrap(); + let second_decoding = + base32::Alphabet::RFC4648 { padding: false }.decode(&encoding_response).unwrap(); assert_eq!(first_decoding, second_decoding); } } - + let encode_response = base32::Alphabet::RFC4648 { padding: false }.encode(&data); - let decode_response = base32::Alphabet::RFC4648 { padding: false }.decode(&encode_response).unwrap(); + let decode_response = + base32::Alphabet::RFC4648 { padding: false }.decode(&encode_response).unwrap(); assert_eq!(data, decode_response); let encode_response = base32::Alphabet::RFC4648 { padding: true }.encode(&data); - let decode_response = base32::Alphabet::RFC4648 { padding: true }.decode(&encode_response).unwrap(); + let decode_response = + base32::Alphabet::RFC4648 { padding: true }.decode(&encode_response).unwrap(); assert_eq!(data, decode_response); } diff --git a/fuzz/src/bin/base32_target.rs b/fuzz/src/bin/base32_target.rs index cb8620df36f..7937f30855c 100644 --- a/fuzz/src/bin/base32_target.rs +++ b/fuzz/src/bin/base32_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/bech32_parse_target.rs b/fuzz/src/bin/bech32_parse_target.rs index d05ad98191b..62f588d3169 100644 --- a/fuzz/src/bin/bech32_parse_target.rs +++ b/fuzz/src/bin/bech32_parse_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/bolt11_deser_target.rs b/fuzz/src/bin/bolt11_deser_target.rs index 30091c36e8e..f79140ae5eb 100644 --- a/fuzz/src/bin/bolt11_deser_target.rs +++ b/fuzz/src/bin/bolt11_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/chanmon_consistency_target.rs b/fuzz/src/bin/chanmon_consistency_target.rs index 0b03b43c8f6..c4788b0c1b2 100644 --- a/fuzz/src/bin/chanmon_consistency_target.rs +++ b/fuzz/src/bin/chanmon_consistency_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/chanmon_deser_target.rs b/fuzz/src/bin/chanmon_deser_target.rs index 40bbf260df2..e58b8030217 100644 --- a/fuzz/src/bin/chanmon_deser_target.rs +++ b/fuzz/src/bin/chanmon_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/fromstr_to_netaddress_target.rs b/fuzz/src/bin/fromstr_to_netaddress_target.rs index 27f7d8ae9ee..d86d521c762 100644 --- a/fuzz/src/bin/fromstr_to_netaddress_target.rs +++ b/fuzz/src/bin/fromstr_to_netaddress_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/full_stack_target.rs b/fuzz/src/bin/full_stack_target.rs index 1f5238940e5..33bac418f38 100644 --- a/fuzz/src/bin/full_stack_target.rs +++ b/fuzz/src/bin/full_stack_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/indexedmap_target.rs b/fuzz/src/bin/indexedmap_target.rs index 93f7a012ff7..3830e6a24a6 100644 --- a/fuzz/src/bin/indexedmap_target.rs +++ b/fuzz/src/bin/indexedmap_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/invoice_deser_target.rs b/fuzz/src/bin/invoice_deser_target.rs index 14aea952714..ed79d246a58 100644 --- a/fuzz/src/bin/invoice_deser_target.rs +++ b/fuzz/src/bin/invoice_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/invoice_request_deser_target.rs b/fuzz/src/bin/invoice_request_deser_target.rs index c86dbb1c27c..47fd3361fcc 100644 --- a/fuzz/src/bin/invoice_request_deser_target.rs +++ b/fuzz/src/bin/invoice_request_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_accept_channel_target.rs b/fuzz/src/bin/msg_accept_channel_target.rs index 43ae124b428..0b5fa27bcc7 100644 --- a/fuzz/src/bin/msg_accept_channel_target.rs +++ b/fuzz/src/bin/msg_accept_channel_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_accept_channel_v2_target.rs b/fuzz/src/bin/msg_accept_channel_v2_target.rs index 012c1b24ebc..efb02c7acf4 100644 --- a/fuzz/src/bin/msg_accept_channel_v2_target.rs +++ b/fuzz/src/bin/msg_accept_channel_v2_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_announcement_signatures_target.rs b/fuzz/src/bin/msg_announcement_signatures_target.rs index 7608f104580..684f1361f38 100644 --- a/fuzz/src/bin/msg_announcement_signatures_target.rs +++ b/fuzz/src/bin/msg_announcement_signatures_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_channel_announcement_target.rs b/fuzz/src/bin/msg_channel_announcement_target.rs index cf4c1462703..8f326790e0a 100644 --- a/fuzz/src/bin/msg_channel_announcement_target.rs +++ b/fuzz/src/bin/msg_channel_announcement_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_channel_details_target.rs b/fuzz/src/bin/msg_channel_details_target.rs index 4040a7c0084..34f51a30bde 100644 --- a/fuzz/src/bin/msg_channel_details_target.rs +++ b/fuzz/src/bin/msg_channel_details_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_channel_ready_target.rs b/fuzz/src/bin/msg_channel_ready_target.rs index f8cfef2dff4..76733dbecfe 100644 --- a/fuzz/src/bin/msg_channel_ready_target.rs +++ b/fuzz/src/bin/msg_channel_ready_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_channel_reestablish_target.rs b/fuzz/src/bin/msg_channel_reestablish_target.rs index 3aa6dc231d2..cdb4f1048e3 100644 --- a/fuzz/src/bin/msg_channel_reestablish_target.rs +++ b/fuzz/src/bin/msg_channel_reestablish_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_channel_update_target.rs b/fuzz/src/bin/msg_channel_update_target.rs index bb4902dcfc0..0b567c18b81 100644 --- a/fuzz/src/bin/msg_channel_update_target.rs +++ b/fuzz/src/bin/msg_channel_update_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_closing_signed_target.rs b/fuzz/src/bin/msg_closing_signed_target.rs index 0985ab52287..1634b109da9 100644 --- a/fuzz/src/bin/msg_closing_signed_target.rs +++ b/fuzz/src/bin/msg_closing_signed_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_commitment_signed_target.rs b/fuzz/src/bin/msg_commitment_signed_target.rs index f0b26cdc561..0c00a4ceb5a 100644 --- a/fuzz/src/bin/msg_commitment_signed_target.rs +++ b/fuzz/src/bin/msg_commitment_signed_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs b/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs index 5801fbef62b..93f3c66b207 100644 --- a/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs +++ b/fuzz/src/bin/msg_decoded_onion_error_packet_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_error_message_target.rs b/fuzz/src/bin/msg_error_message_target.rs index c36e553bfb3..4840e2bdfe9 100644 --- a/fuzz/src/bin/msg_error_message_target.rs +++ b/fuzz/src/bin/msg_error_message_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_funding_created_target.rs b/fuzz/src/bin/msg_funding_created_target.rs index 1787e9ddb24..f8884116710 100644 --- a/fuzz/src/bin/msg_funding_created_target.rs +++ b/fuzz/src/bin/msg_funding_created_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_funding_signed_target.rs b/fuzz/src/bin/msg_funding_signed_target.rs index 1f0da2a8eaa..42d0316dc9a 100644 --- a/fuzz/src/bin/msg_funding_signed_target.rs +++ b/fuzz/src/bin/msg_funding_signed_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_gossip_timestamp_filter_target.rs b/fuzz/src/bin/msg_gossip_timestamp_filter_target.rs index fe41f3ddd3a..0a47f773114 100644 --- a/fuzz/src/bin/msg_gossip_timestamp_filter_target.rs +++ b/fuzz/src/bin/msg_gossip_timestamp_filter_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_init_target.rs b/fuzz/src/bin/msg_init_target.rs index b4872cc155b..db0c8a8894f 100644 --- a/fuzz/src/bin/msg_init_target.rs +++ b/fuzz/src/bin/msg_init_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_node_announcement_target.rs b/fuzz/src/bin/msg_node_announcement_target.rs index a9fe444deff..1c20a999aaa 100644 --- a/fuzz/src/bin/msg_node_announcement_target.rs +++ b/fuzz/src/bin/msg_node_announcement_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_open_channel_target.rs b/fuzz/src/bin/msg_open_channel_target.rs index ff623cda998..fc6df814dd1 100644 --- a/fuzz/src/bin/msg_open_channel_target.rs +++ b/fuzz/src/bin/msg_open_channel_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_open_channel_v2_target.rs b/fuzz/src/bin/msg_open_channel_v2_target.rs index dfc901f7ac8..732daed18c3 100644 --- a/fuzz/src/bin/msg_open_channel_v2_target.rs +++ b/fuzz/src/bin/msg_open_channel_v2_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_ping_target.rs b/fuzz/src/bin/msg_ping_target.rs index bf7c553541d..bb1a59b9bad 100644 --- a/fuzz/src/bin/msg_ping_target.rs +++ b/fuzz/src/bin/msg_ping_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_pong_target.rs b/fuzz/src/bin/msg_pong_target.rs index a8e4285d171..7a97d93e785 100644 --- a/fuzz/src/bin/msg_pong_target.rs +++ b/fuzz/src/bin/msg_pong_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_query_channel_range_target.rs b/fuzz/src/bin/msg_query_channel_range_target.rs index e07a046cb38..4fd3260db0a 100644 --- a/fuzz/src/bin/msg_query_channel_range_target.rs +++ b/fuzz/src/bin/msg_query_channel_range_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_query_short_channel_ids_target.rs b/fuzz/src/bin/msg_query_short_channel_ids_target.rs index 25fcf311ee1..63f8c48fb3b 100644 --- a/fuzz/src/bin/msg_query_short_channel_ids_target.rs +++ b/fuzz/src/bin/msg_query_short_channel_ids_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_reply_channel_range_target.rs b/fuzz/src/bin/msg_reply_channel_range_target.rs index a0b54f691da..8e5ce619fa4 100644 --- a/fuzz/src/bin/msg_reply_channel_range_target.rs +++ b/fuzz/src/bin/msg_reply_channel_range_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_reply_short_channel_ids_end_target.rs b/fuzz/src/bin/msg_reply_short_channel_ids_end_target.rs index 464641e5b54..9b9b528abe5 100644 --- a/fuzz/src/bin/msg_reply_short_channel_ids_end_target.rs +++ b/fuzz/src/bin/msg_reply_short_channel_ids_end_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_revoke_and_ack_target.rs b/fuzz/src/bin/msg_revoke_and_ack_target.rs index be20070b012..1f401dae773 100644 --- a/fuzz/src/bin/msg_revoke_and_ack_target.rs +++ b/fuzz/src/bin/msg_revoke_and_ack_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_shutdown_target.rs b/fuzz/src/bin/msg_shutdown_target.rs index 9a4cbeb639e..c29bb93bb0b 100644 --- a/fuzz/src/bin/msg_shutdown_target.rs +++ b/fuzz/src/bin/msg_shutdown_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_splice_ack_target.rs b/fuzz/src/bin/msg_splice_ack_target.rs index 15b546b202c..9957a85552f 100644 --- a/fuzz/src/bin/msg_splice_ack_target.rs +++ b/fuzz/src/bin/msg_splice_ack_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_splice_locked_target.rs b/fuzz/src/bin/msg_splice_locked_target.rs index afc6b146579..d9dfcf956be 100644 --- a/fuzz/src/bin/msg_splice_locked_target.rs +++ b/fuzz/src/bin/msg_splice_locked_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_splice_target.rs b/fuzz/src/bin/msg_splice_target.rs index 475c5997171..a88b189b43b 100644 --- a/fuzz/src/bin/msg_splice_target.rs +++ b/fuzz/src/bin/msg_splice_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_stfu_target.rs b/fuzz/src/bin/msg_stfu_target.rs index 9b75073b825..bdef12d4c32 100644 --- a/fuzz/src/bin/msg_stfu_target.rs +++ b/fuzz/src/bin/msg_stfu_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_abort_target.rs b/fuzz/src/bin/msg_tx_abort_target.rs index bbfd4ab8163..76f098b1e2c 100644 --- a/fuzz/src/bin/msg_tx_abort_target.rs +++ b/fuzz/src/bin/msg_tx_abort_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_ack_rbf_target.rs b/fuzz/src/bin/msg_tx_ack_rbf_target.rs index 1d22dcea4b1..1f549a5703f 100644 --- a/fuzz/src/bin/msg_tx_ack_rbf_target.rs +++ b/fuzz/src/bin/msg_tx_ack_rbf_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_add_input_target.rs b/fuzz/src/bin/msg_tx_add_input_target.rs index 7a858880ece..9b7e1cfe7e6 100644 --- a/fuzz/src/bin/msg_tx_add_input_target.rs +++ b/fuzz/src/bin/msg_tx_add_input_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_add_output_target.rs b/fuzz/src/bin/msg_tx_add_output_target.rs index 2fcac4bebae..b8ad29581bc 100644 --- a/fuzz/src/bin/msg_tx_add_output_target.rs +++ b/fuzz/src/bin/msg_tx_add_output_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_complete_target.rs b/fuzz/src/bin/msg_tx_complete_target.rs index 9856c2cdf4c..28b295b0d25 100644 --- a/fuzz/src/bin/msg_tx_complete_target.rs +++ b/fuzz/src/bin/msg_tx_complete_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_init_rbf_target.rs b/fuzz/src/bin/msg_tx_init_rbf_target.rs index 88657e1105a..24fa793315d 100644 --- a/fuzz/src/bin/msg_tx_init_rbf_target.rs +++ b/fuzz/src/bin/msg_tx_init_rbf_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_remove_input_target.rs b/fuzz/src/bin/msg_tx_remove_input_target.rs index 02801865f6b..abe4190a354 100644 --- a/fuzz/src/bin/msg_tx_remove_input_target.rs +++ b/fuzz/src/bin/msg_tx_remove_input_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_remove_output_target.rs b/fuzz/src/bin/msg_tx_remove_output_target.rs index 4e1398135b8..3d084e0048d 100644 --- a/fuzz/src/bin/msg_tx_remove_output_target.rs +++ b/fuzz/src/bin/msg_tx_remove_output_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_tx_signatures_target.rs b/fuzz/src/bin/msg_tx_signatures_target.rs index abb3ab82ac5..fa3b966b478 100644 --- a/fuzz/src/bin/msg_tx_signatures_target.rs +++ b/fuzz/src/bin/msg_tx_signatures_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_update_add_htlc_target.rs b/fuzz/src/bin/msg_update_add_htlc_target.rs index ae8ba13a25d..f3c25a37524 100644 --- a/fuzz/src/bin/msg_update_add_htlc_target.rs +++ b/fuzz/src/bin/msg_update_add_htlc_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_update_fail_htlc_target.rs b/fuzz/src/bin/msg_update_fail_htlc_target.rs index 8767c7a31ad..9698ae92cfe 100644 --- a/fuzz/src/bin/msg_update_fail_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fail_htlc_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs b/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs index 1d5d7daf2f2..b7f511c5ff5 100644 --- a/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_update_fee_target.rs b/fuzz/src/bin/msg_update_fee_target.rs index 207df698f6a..b021107f150 100644 --- a/fuzz/src/bin/msg_update_fee_target.rs +++ b/fuzz/src/bin/msg_update_fee_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/msg_update_fulfill_htlc_target.rs b/fuzz/src/bin/msg_update_fulfill_htlc_target.rs index f8e26535910..d87cd5bd490 100644 --- a/fuzz/src/bin/msg_update_fulfill_htlc_target.rs +++ b/fuzz/src/bin/msg_update_fulfill_htlc_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/offer_deser_target.rs b/fuzz/src/bin/offer_deser_target.rs index 64b2c4460dd..51cdb09adec 100644 --- a/fuzz/src/bin/offer_deser_target.rs +++ b/fuzz/src/bin/offer_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/onion_hop_data_target.rs b/fuzz/src/bin/onion_hop_data_target.rs index 0043cee63ce..50d98043d05 100644 --- a/fuzz/src/bin/onion_hop_data_target.rs +++ b/fuzz/src/bin/onion_hop_data_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/onion_message_target.rs b/fuzz/src/bin/onion_message_target.rs index 1c28f5608ec..7bb09477ec5 100644 --- a/fuzz/src/bin/onion_message_target.rs +++ b/fuzz/src/bin/onion_message_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/peer_crypt_target.rs b/fuzz/src/bin/peer_crypt_target.rs index 8690f233251..0ba0252c963 100644 --- a/fuzz/src/bin/peer_crypt_target.rs +++ b/fuzz/src/bin/peer_crypt_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/process_network_graph_target.rs b/fuzz/src/bin/process_network_graph_target.rs index 5b5d8f81615..4ce10e6d4df 100644 --- a/fuzz/src/bin/process_network_graph_target.rs +++ b/fuzz/src/bin/process_network_graph_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/refund_deser_target.rs b/fuzz/src/bin/refund_deser_target.rs index fca53dd2dec..fea8a9c4c6d 100644 --- a/fuzz/src/bin/refund_deser_target.rs +++ b/fuzz/src/bin/refund_deser_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/router_target.rs b/fuzz/src/bin/router_target.rs index f9808ebc80f..0ebec549455 100644 --- a/fuzz/src/bin/router_target.rs +++ b/fuzz/src/bin/router_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/target_template.txt b/fuzz/src/bin/target_template.txt index 7603ccb2719..e828aa998b1 100644 --- a/fuzz/src/bin/target_template.txt +++ b/fuzz/src/bin/target_template.txt @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/bin/zbase32_target.rs b/fuzz/src/bin/zbase32_target.rs index e0ad2c5bcd1..35aa53d1fff 100644 --- a/fuzz/src/bin/zbase32_target.rs +++ b/fuzz/src/bin/zbase32_target.rs @@ -11,6 +11,7 @@ // To modify it, modify target_template.txt and run gen_target.sh instead. #![cfg_attr(feature = "libfuzzer_fuzz", no_main)] +#![cfg_attr(rustfmt, rustfmt_skip)] #[cfg(not(fuzzing))] compile_error!("Fuzz targets need cfg=fuzzing"); diff --git a/fuzz/src/chanmon_deser.rs b/fuzz/src/chanmon_deser.rs index 8d425357c96..b9c01213772 100644 --- a/fuzz/src/chanmon_deser.rs +++ b/fuzz/src/chanmon_deser.rs @@ -4,8 +4,8 @@ use bitcoin::hash_types::BlockHash; use lightning::chain::channelmonitor; +use lightning::util::ser::{ReadableArgs, Writeable, Writer}; use lightning::util::test_channel_signer::TestChannelSigner; -use lightning::util::ser::{ReadableArgs, Writer, Writeable}; use lightning::util::test_utils::OnlyReadsKeysInterface; use crate::utils::test_logger; @@ -22,10 +22,19 @@ impl Writer for VecWriter { #[inline] pub fn do_test(data: &[u8], _out: Out) { - if let Ok((latest_block_hash, monitor)) = <(BlockHash, channelmonitor::ChannelMonitor)>::read(&mut Cursor::new(data), (&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {})) { + if let Ok((latest_block_hash, monitor)) = + <(BlockHash, channelmonitor::ChannelMonitor)>::read( + &mut Cursor::new(data), + (&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {}), + ) { let mut w = VecWriter(Vec::new()); monitor.write(&mut w).unwrap(); - let deserialized_copy = <(BlockHash, channelmonitor::ChannelMonitor)>::read(&mut Cursor::new(&w.0), (&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {})).unwrap(); + let deserialized_copy = + <(BlockHash, channelmonitor::ChannelMonitor)>::read( + &mut Cursor::new(&w.0), + (&OnlyReadsKeysInterface {}, &OnlyReadsKeysInterface {}), + ) + .unwrap(); assert!(latest_block_hash == deserialized_copy.0); assert!(monitor == deserialized_copy.1); } @@ -37,5 +46,5 @@ pub fn chanmon_deser_test(data: &[u8], out: Out) { #[no_mangle] pub extern "C" fn chanmon_deser_run(data: *const u8, datalen: usize) { - do_test(unsafe { std::slice::from_raw_parts(data, datalen) }, test_logger::DevNull{}); + do_test(unsafe { std::slice::from_raw_parts(data, datalen) }, test_logger::DevNull {}); } diff --git a/fuzz/src/fromstr_to_netaddress.rs b/fuzz/src/fromstr_to_netaddress.rs index dba2d44451e..384ea56a8ef 100644 --- a/fuzz/src/fromstr_to_netaddress.rs +++ b/fuzz/src/fromstr_to_netaddress.rs @@ -7,8 +7,8 @@ // You may not use this file except in accordance with one or both of these // licenses. -use lightning::ln::msgs::SocketAddress; use core::str::FromStr; +use lightning::ln::msgs::SocketAddress; use crate::utils::test_logger; @@ -17,7 +17,6 @@ pub fn do_test(data: &[u8]) { if let Ok(s) = std::str::from_utf8(data) { let _ = SocketAddress::from_str(s); } - } pub fn fromstr_to_netaddress_test(data: &[u8], _out: Out) { @@ -28,4 +27,3 @@ pub fn fromstr_to_netaddress_test(data: &[u8], _out: O pub extern "C" fn fromstr_to_netaddress_run(data: *const u8, datalen: usize) { do_test(unsafe { std::slice::from_raw_parts(data, datalen) }); } - diff --git a/fuzz/src/indexedmap.rs b/fuzz/src/indexedmap.rs index 58775d02467..ee21f04619f 100644 --- a/fuzz/src/indexedmap.rs +++ b/fuzz/src/indexedmap.rs @@ -7,23 +7,31 @@ // You may not use this file except in accordance with one or both of these // licenses. -use lightning::util::indexed_map::{IndexedMap, self}; -use std::collections::{BTreeMap, btree_map}; use lightning::util::hash_tables::*; +use lightning::util::indexed_map::{self, IndexedMap}; +use std::collections::{btree_map, BTreeMap}; use crate::utils::test_logger; -use std::ops::{RangeBounds, Bound}; +use std::ops::{Bound, RangeBounds}; struct ExclLowerInclUpper(u8, u8); impl RangeBounds for ExclLowerInclUpper { - fn start_bound(&self) -> Bound<&u8> { Bound::Excluded(&self.0) } - fn end_bound(&self) -> Bound<&u8> { Bound::Included(&self.1) } + fn start_bound(&self) -> Bound<&u8> { + Bound::Excluded(&self.0) + } + fn end_bound(&self) -> Bound<&u8> { + Bound::Included(&self.1) + } } struct ExclLowerExclUpper(u8, u8); impl RangeBounds for ExclLowerExclUpper { - fn start_bound(&self) -> Bound<&u8> { Bound::Excluded(&self.0) } - fn end_bound(&self) -> Bound<&u8> { Bound::Excluded(&self.1) } + fn start_bound(&self) -> Bound<&u8> { + Bound::Excluded(&self.0) + } + fn end_bound(&self) -> Bound<&u8> { + Bound::Excluded(&self.1) + } } fn check_eq(btree: &BTreeMap, mut indexed: IndexedMap) { @@ -46,36 +54,44 @@ fn check_eq(btree: &BTreeMap, mut indexed: IndexedMap) { if let indexed_map::Entry::Occupied(mut io) = indexed_entry { assert_eq!(bo.get(), io.get()); assert_eq!(bo.get_mut(), io.get_mut()); - } else { panic!(); } + } else { + panic!(); + } }, btree_map::Entry::Vacant(_) => { if let indexed_map::Entry::Vacant(_) = indexed_entry { - } else { panic!(); } - } + } else { + panic!(); + } + }, } } const STRIDE: u8 = 16; for range_type in 0..4 { - for k in 0..=255/STRIDE { + for k in 0..=255 / STRIDE { let lower_bound = k * STRIDE; let upper_bound = lower_bound + (STRIDE - 1); - macro_rules! range { ($map: expr) => { - match range_type { - 0 => $map.range(lower_bound..upper_bound), - 1 => $map.range(lower_bound..=upper_bound), - 2 => $map.range(ExclLowerInclUpper(lower_bound, upper_bound)), - 3 => $map.range(ExclLowerExclUpper(lower_bound, upper_bound)), - _ => unreachable!(), - } - } } + macro_rules! range { + ($map: expr) => { + match range_type { + 0 => $map.range(lower_bound..upper_bound), + 1 => $map.range(lower_bound..=upper_bound), + 2 => $map.range(ExclLowerInclUpper(lower_bound, upper_bound)), + 3 => $map.range(ExclLowerExclUpper(lower_bound, upper_bound)), + _ => unreachable!(), + } + }; + } let mut btree_iter = range!(btree); let mut indexed_iter = range!(indexed); loop { let b_v = btree_iter.next(); let i_v = indexed_iter.next(); assert_eq!(b_v, i_v); - if b_v.is_none() { break; } + if b_v.is_none() { + break; + } } } } @@ -104,7 +120,9 @@ fn check_eq(btree: &BTreeMap, mut indexed: IndexedMap) { #[inline] pub fn do_test(data: &[u8]) { - if data.len() % 2 != 0 { return; } + if data.len() % 2 != 0 { + return; + } let mut btree = BTreeMap::new(); let mut indexed = IndexedMap::new(); @@ -138,13 +156,17 @@ pub fn do_test(data: &[u8]) { } else { assert_eq!(bo.remove_entry(), io.remove_entry()); } - } else { panic!(); } + } else { + panic!(); + } }, btree_map::Entry::Vacant(bv) => { if let indexed_map::Entry::Vacant(iv) = indexed.entry(k) { bv.insert(k); iv.insert(k); - } else { panic!(); } + } else { + panic!(); + } }, } } diff --git a/fuzz/src/invoice_request_deser.rs b/fuzz/src/invoice_request_deser.rs index 1381f6697d1..642da58236f 100644 --- a/fuzz/src/invoice_request_deser.rs +++ b/fuzz/src/invoice_request_deser.rs @@ -7,17 +7,17 @@ // You may not use this file except in accordance with one or both of these // licenses. -use bitcoin::secp256k1::{Keypair, Parity, PublicKey, Secp256k1, SecretKey, self}; use crate::utils::test_logger; +use bitcoin::secp256k1::{self, Keypair, Parity, PublicKey, Secp256k1, SecretKey}; use core::convert::TryFrom; -use lightning::blinded_path::BlindedPath; use lightning::blinded_path::message::ForwardNode; -use lightning::sign::EntropySource; -use lightning::ln::PaymentHash; +use lightning::blinded_path::BlindedPath; use lightning::ln::features::BlindedHopFeatures; +use lightning::ln::PaymentHash; use lightning::offers::invoice::{BlindedPayInfo, UnsignedBolt12Invoice}; use lightning::offers::invoice_request::InvoiceRequest; use lightning::offers::parse::Bolt12SemanticError; +use lightning::sign::EntropySource; use lightning::util::ser::Writeable; #[inline] @@ -38,17 +38,17 @@ pub fn do_test(data: &[u8], _out: Out) { let even_pubkey = x_only_pubkey.public_key(Parity::Even); if signing_pubkey == odd_pubkey || signing_pubkey == even_pubkey { unsigned_invoice - .sign(|message: &UnsignedBolt12Invoice| + .sign(|message: &UnsignedBolt12Invoice| { Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - ) + }) .unwrap() .write(&mut buffer) .unwrap(); } else { unsigned_invoice - .sign(|message: &UnsignedBolt12Invoice| + .sign(|message: &UnsignedBolt12Invoice| { Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - ) + }) .unwrap_err(); } } @@ -58,7 +58,9 @@ pub fn do_test(data: &[u8], _out: Out) { struct Randomness; impl EntropySource for Randomness { - fn get_secure_random_bytes(&self) -> [u8; 32] { [42; 32] } + fn get_secure_random_bytes(&self) -> [u8; 32] { + [42; 32] + } } fn pubkey(byte: u8) -> PublicKey { @@ -71,7 +73,7 @@ fn privkey(byte: u8) -> SecretKey { } fn build_response( - invoice_request: &InvoiceRequest, secp_ctx: &Secp256k1 + invoice_request: &InvoiceRequest, secp_ctx: &Secp256k1, ) -> Result { let entropy_source = Randomness {}; let intermediate_nodes = [ @@ -85,8 +87,10 @@ fn build_response( ], ]; let paths = vec![ - BlindedPath::new_for_message(&intermediate_nodes[0], pubkey(42), &entropy_source, secp_ctx).unwrap(), - BlindedPath::new_for_message(&intermediate_nodes[1], pubkey(42), &entropy_source, secp_ctx).unwrap(), + BlindedPath::new_for_message(&intermediate_nodes[0], pubkey(42), &entropy_source, secp_ctx) + .unwrap(), + BlindedPath::new_for_message(&intermediate_nodes[1], pubkey(42), &entropy_source, secp_ctx) + .unwrap(), ]; let payinfo = vec![ diff --git a/fuzz/src/lib.rs b/fuzz/src/lib.rs index 6efdd94dfcb..2e132edce42 100644 --- a/fuzz/src/lib.rs +++ b/fuzz/src/lib.rs @@ -8,29 +8,29 @@ // licenses. extern crate bitcoin; +extern crate hex; extern crate lightning; extern crate lightning_rapid_gossip_sync; -extern crate hex; pub mod utils; +pub mod base32; pub mod bech32_parse; -pub mod chanmon_deser; +pub mod bolt11_deser; pub mod chanmon_consistency; +pub mod chanmon_deser; +pub mod fromstr_to_netaddress; pub mod full_stack; pub mod indexedmap; pub mod invoice_deser; pub mod invoice_request_deser; pub mod offer_deser; -pub mod bolt11_deser; +pub mod onion_hop_data; pub mod onion_message; pub mod peer_crypt; pub mod process_network_graph; pub mod refund_deser; pub mod router; pub mod zbase32; -pub mod onion_hop_data; -pub mod base32; -pub mod fromstr_to_netaddress; pub mod msg_targets; diff --git a/fuzz/src/msg_targets/gen_target.sh b/fuzz/src/msg_targets/gen_target.sh index 8bce10059f5..05997c07573 100755 --- a/fuzz/src/msg_targets/gen_target.sh +++ b/fuzz/src/msg_targets/gen_target.sh @@ -7,7 +7,10 @@ GEN_TEST() { echo "pub mod $tn;" >> mod.rs } -echo "mod utils;" > mod.rs +{ + echo "#![cfg_attr(rustfmt, rustfmt_skip)]" + echo "mod utils;" +} > mod.rs # Note when adding new targets here you should add a similar line in src/bin/gen_target.sh diff --git a/fuzz/src/msg_targets/mod.rs b/fuzz/src/msg_targets/mod.rs index 837bee65dec..15750a9a5b1 100644 --- a/fuzz/src/msg_targets/mod.rs +++ b/fuzz/src/msg_targets/mod.rs @@ -1,3 +1,4 @@ +#![cfg_attr(rustfmt, rustfmt_skip)] mod utils; pub mod msg_accept_channel; pub mod msg_announcement_signatures; diff --git a/fuzz/src/msg_targets/msg_accept_channel.rs b/fuzz/src/msg_targets/msg_accept_channel.rs index d4e7acf1da7..216fe7c59bd 100644 --- a/fuzz/src/msg_targets/msg_accept_channel.rs +++ b/fuzz/src/msg_targets/msg_accept_channel.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_accept_channel_v2.rs b/fuzz/src/msg_targets/msg_accept_channel_v2.rs index 36b646644ea..c1d7fb55c9b 100644 --- a/fuzz/src/msg_targets/msg_accept_channel_v2.rs +++ b/fuzz/src/msg_targets/msg_accept_channel_v2.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_announcement_signatures.rs b/fuzz/src/msg_targets/msg_announcement_signatures.rs index cf0ca2e2d85..6010e6001b6 100644 --- a/fuzz/src/msg_targets/msg_announcement_signatures.rs +++ b/fuzz/src/msg_targets/msg_announcement_signatures.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_channel_announcement.rs b/fuzz/src/msg_targets/msg_channel_announcement.rs index 0c67ca16edf..d4084c61893 100644 --- a/fuzz/src/msg_targets/msg_channel_announcement.rs +++ b/fuzz/src/msg_targets/msg_channel_announcement.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_channel_details.rs b/fuzz/src/msg_targets/msg_channel_details.rs index 59554fab177..eb9f8beee47 100644 --- a/fuzz/src/msg_targets/msg_channel_details.rs +++ b/fuzz/src/msg_targets/msg_channel_details.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_channel_ready.rs b/fuzz/src/msg_targets/msg_channel_ready.rs index 5b13486f56c..3180928905d 100644 --- a/fuzz/src/msg_targets/msg_channel_ready.rs +++ b/fuzz/src/msg_targets/msg_channel_ready.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_channel_reestablish.rs b/fuzz/src/msg_targets/msg_channel_reestablish.rs index fdc2d1fa62b..f766892a2e2 100644 --- a/fuzz/src/msg_targets/msg_channel_reestablish.rs +++ b/fuzz/src/msg_targets/msg_channel_reestablish.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_channel_update.rs b/fuzz/src/msg_targets/msg_channel_update.rs index 27dadaed562..358305b9dae 100644 --- a/fuzz/src/msg_targets/msg_channel_update.rs +++ b/fuzz/src/msg_targets/msg_channel_update.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_closing_signed.rs b/fuzz/src/msg_targets/msg_closing_signed.rs index 0497b1fcc65..74e04d6675a 100644 --- a/fuzz/src/msg_targets/msg_closing_signed.rs +++ b/fuzz/src/msg_targets/msg_closing_signed.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_commitment_signed.rs b/fuzz/src/msg_targets/msg_commitment_signed.rs index 8726efc586b..7ece314353d 100644 --- a/fuzz/src/msg_targets/msg_commitment_signed.rs +++ b/fuzz/src/msg_targets/msg_commitment_signed.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs b/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs index 3f5243d4e26..9d245e2f2d2 100644 --- a/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs +++ b/fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_error_message.rs b/fuzz/src/msg_targets/msg_error_message.rs index 6d9d8e27e31..ae16e1686dc 100644 --- a/fuzz/src/msg_targets/msg_error_message.rs +++ b/fuzz/src/msg_targets/msg_error_message.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_funding_created.rs b/fuzz/src/msg_targets/msg_funding_created.rs index c03975da7b9..a6c5ba148c2 100644 --- a/fuzz/src/msg_targets/msg_funding_created.rs +++ b/fuzz/src/msg_targets/msg_funding_created.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_funding_signed.rs b/fuzz/src/msg_targets/msg_funding_signed.rs index 8788d34bc8f..34f0fddaad3 100644 --- a/fuzz/src/msg_targets/msg_funding_signed.rs +++ b/fuzz/src/msg_targets/msg_funding_signed.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs b/fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs index 884449b06d5..8e0fb7c5380 100644 --- a/fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs +++ b/fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_init.rs b/fuzz/src/msg_targets/msg_init.rs index 1f21f4b3d5d..5f11441ddf5 100644 --- a/fuzz/src/msg_targets/msg_init.rs +++ b/fuzz/src/msg_targets/msg_init.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_node_announcement.rs b/fuzz/src/msg_targets/msg_node_announcement.rs index ab2ba755092..ce9bb30d3dd 100644 --- a/fuzz/src/msg_targets/msg_node_announcement.rs +++ b/fuzz/src/msg_targets/msg_node_announcement.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_open_channel.rs b/fuzz/src/msg_targets/msg_open_channel.rs index cacb5d767d6..9c924e501db 100644 --- a/fuzz/src/msg_targets/msg_open_channel.rs +++ b/fuzz/src/msg_targets/msg_open_channel.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_open_channel_v2.rs b/fuzz/src/msg_targets/msg_open_channel_v2.rs index 4f6457a3ebb..a43d58ee9e6 100644 --- a/fuzz/src/msg_targets/msg_open_channel_v2.rs +++ b/fuzz/src/msg_targets/msg_open_channel_v2.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_ping.rs b/fuzz/src/msg_targets/msg_ping.rs index 2509fef7e89..2ff54816474 100644 --- a/fuzz/src/msg_targets/msg_ping.rs +++ b/fuzz/src/msg_targets/msg_ping.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_pong.rs b/fuzz/src/msg_targets/msg_pong.rs index 1c90eefdb32..52b9ee08486 100644 --- a/fuzz/src/msg_targets/msg_pong.rs +++ b/fuzz/src/msg_targets/msg_pong.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_query_channel_range.rs b/fuzz/src/msg_targets/msg_query_channel_range.rs index fe2fb405143..6b59636780b 100644 --- a/fuzz/src/msg_targets/msg_query_channel_range.rs +++ b/fuzz/src/msg_targets/msg_query_channel_range.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_query_short_channel_ids.rs b/fuzz/src/msg_targets/msg_query_short_channel_ids.rs index bd8fa59d157..c15915fd1a8 100644 --- a/fuzz/src/msg_targets/msg_query_short_channel_ids.rs +++ b/fuzz/src/msg_targets/msg_query_short_channel_ids.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_reply_channel_range.rs b/fuzz/src/msg_targets/msg_reply_channel_range.rs index 43a3e0f3ddc..3cb94af6c23 100644 --- a/fuzz/src/msg_targets/msg_reply_channel_range.rs +++ b/fuzz/src/msg_targets/msg_reply_channel_range.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs b/fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs index dc765c76b19..a53459997f9 100644 --- a/fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs +++ b/fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_revoke_and_ack.rs b/fuzz/src/msg_targets/msg_revoke_and_ack.rs index 9190c98e882..26f2d7524cd 100644 --- a/fuzz/src/msg_targets/msg_revoke_and_ack.rs +++ b/fuzz/src/msg_targets/msg_revoke_and_ack.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_shutdown.rs b/fuzz/src/msg_targets/msg_shutdown.rs index 26133f7d1db..77c4cfdaae3 100644 --- a/fuzz/src/msg_targets/msg_shutdown.rs +++ b/fuzz/src/msg_targets/msg_shutdown.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_splice.rs b/fuzz/src/msg_targets/msg_splice.rs index e6a18d2561c..f203da0562c 100644 --- a/fuzz/src/msg_targets/msg_splice.rs +++ b/fuzz/src/msg_targets/msg_splice.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_splice_ack.rs b/fuzz/src/msg_targets/msg_splice_ack.rs index cc77c198bb7..65949d273da 100644 --- a/fuzz/src/msg_targets/msg_splice_ack.rs +++ b/fuzz/src/msg_targets/msg_splice_ack.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_splice_locked.rs b/fuzz/src/msg_targets/msg_splice_locked.rs index 39e340fd40b..02e762ade70 100644 --- a/fuzz/src/msg_targets/msg_splice_locked.rs +++ b/fuzz/src/msg_targets/msg_splice_locked.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_stfu.rs b/fuzz/src/msg_targets/msg_stfu.rs index be2029194a7..87845cf28aa 100644 --- a/fuzz/src/msg_targets/msg_stfu.rs +++ b/fuzz/src/msg_targets/msg_stfu.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_target_template.txt b/fuzz/src/msg_targets/msg_target_template.txt index c6064388dca..f5ed99b64d0 100644 --- a/fuzz/src/msg_targets/msg_target_template.txt +++ b/fuzz/src/msg_targets/msg_target_template.txt @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_abort.rs b/fuzz/src/msg_targets/msg_tx_abort.rs index c361b654675..c80df485040 100644 --- a/fuzz/src/msg_targets/msg_tx_abort.rs +++ b/fuzz/src/msg_targets/msg_tx_abort.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_ack_rbf.rs b/fuzz/src/msg_targets/msg_tx_ack_rbf.rs index 9931bfcfb72..41fd1ed9c27 100644 --- a/fuzz/src/msg_targets/msg_tx_ack_rbf.rs +++ b/fuzz/src/msg_targets/msg_tx_ack_rbf.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_add_input.rs b/fuzz/src/msg_targets/msg_tx_add_input.rs index f212b59cd6a..8ae0c61034a 100644 --- a/fuzz/src/msg_targets/msg_tx_add_input.rs +++ b/fuzz/src/msg_targets/msg_tx_add_input.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_add_output.rs b/fuzz/src/msg_targets/msg_tx_add_output.rs index 49b23218fa1..04511ed599f 100644 --- a/fuzz/src/msg_targets/msg_tx_add_output.rs +++ b/fuzz/src/msg_targets/msg_tx_add_output.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_complete.rs b/fuzz/src/msg_targets/msg_tx_complete.rs index c4227b15235..4cd1a271284 100644 --- a/fuzz/src/msg_targets/msg_tx_complete.rs +++ b/fuzz/src/msg_targets/msg_tx_complete.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_init_rbf.rs b/fuzz/src/msg_targets/msg_tx_init_rbf.rs index ea021dc60ac..eab0a747ea8 100644 --- a/fuzz/src/msg_targets/msg_tx_init_rbf.rs +++ b/fuzz/src/msg_targets/msg_tx_init_rbf.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_remove_input.rs b/fuzz/src/msg_targets/msg_tx_remove_input.rs index fe69ad41b8d..1f934eac274 100644 --- a/fuzz/src/msg_targets/msg_tx_remove_input.rs +++ b/fuzz/src/msg_targets/msg_tx_remove_input.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_remove_output.rs b/fuzz/src/msg_targets/msg_tx_remove_output.rs index 6c09d4d9f41..a9e0e8b2ef1 100644 --- a/fuzz/src/msg_targets/msg_tx_remove_output.rs +++ b/fuzz/src/msg_targets/msg_tx_remove_output.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_tx_signatures.rs b/fuzz/src/msg_targets/msg_tx_signatures.rs index 54392d48cda..17dc063adc2 100644 --- a/fuzz/src/msg_targets/msg_tx_signatures.rs +++ b/fuzz/src/msg_targets/msg_tx_signatures.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_update_add_htlc.rs b/fuzz/src/msg_targets/msg_update_add_htlc.rs index e8edf4f4dd5..45a2616243a 100644 --- a/fuzz/src/msg_targets/msg_update_add_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_add_htlc.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_update_fail_htlc.rs b/fuzz/src/msg_targets/msg_update_fail_htlc.rs index b93cc60b505..e338beeee2f 100644 --- a/fuzz/src/msg_targets/msg_update_fail_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fail_htlc.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs b/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs index 24718d54ade..6c1914f03ca 100644 --- a/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_update_fee.rs b/fuzz/src/msg_targets/msg_update_fee.rs index 92661537bf7..991dde925f8 100644 --- a/fuzz/src/msg_targets/msg_update_fee.rs +++ b/fuzz/src/msg_targets/msg_update_fee.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs b/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs index 7f9463e2731..61e3f30b95c 100644 --- a/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs +++ b/fuzz/src/msg_targets/msg_update_fulfill_htlc.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/msg_warning_message.rs b/fuzz/src/msg_targets/msg_warning_message.rs index a5bcf4111f6..0e1a4566677 100644 --- a/fuzz/src/msg_targets/msg_warning_message.rs +++ b/fuzz/src/msg_targets/msg_warning_message.rs @@ -10,6 +10,8 @@ // This file is auto-generated by gen_target.sh based on msg_target_template.txt // To modify it, modify msg_target_template.txt and run gen_target.sh instead. +#![cfg_attr(rustfmt, rustfmt_skip)] + use crate::msg_targets::utils::VecWriter; use crate::utils::test_logger; diff --git a/fuzz/src/msg_targets/utils.rs b/fuzz/src/msg_targets/utils.rs index 6325f3bf10d..5fa474cbf02 100644 --- a/fuzz/src/msg_targets/utils.rs +++ b/fuzz/src/msg_targets/utils.rs @@ -29,81 +29,73 @@ impl Writer for VecWriter { // entirely #[macro_export] macro_rules! test_msg { - ($MsgType: path, $data: ident) => { - { - use lightning::util::ser::{Writeable, Readable}; - let mut r = ::std::io::Cursor::new($data); - if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { - let p = r.position() as usize; - let mut w = VecWriter(Vec::new()); - msg.write(&mut w).unwrap(); + ($MsgType: path, $data: ident) => {{ + use lightning::util::ser::{Readable, Writeable}; + let mut r = ::std::io::Cursor::new($data); + if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { + let p = r.position() as usize; + let mut w = VecWriter(Vec::new()); + msg.write(&mut w).unwrap(); - assert_eq!(w.0.len(), p); - assert_eq!(msg.serialized_length(), p); - assert_eq!(&r.into_inner()[..p], &w.0[..p]); - } + assert_eq!(w.0.len(), p); + assert_eq!(msg.serialized_length(), p); + assert_eq!(&r.into_inner()[..p], &w.0[..p]); } - } + }}; } // Tests a message that may lose data on roundtrip, but shoulnd't lose data compared to our // re-serialization. #[macro_export] macro_rules! test_msg_simple { - ($MsgType: path, $data: ident) => { - { - use lightning::util::ser::{Writeable, Readable}; - let mut r = ::std::io::Cursor::new($data); - if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { - let mut w = VecWriter(Vec::new()); - msg.write(&mut w).unwrap(); - assert_eq!(msg.serialized_length(), w.0.len()); + ($MsgType: path, $data: ident) => {{ + use lightning::util::ser::{Readable, Writeable}; + let mut r = ::std::io::Cursor::new($data); + if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { + let mut w = VecWriter(Vec::new()); + msg.write(&mut w).unwrap(); + assert_eq!(msg.serialized_length(), w.0.len()); - let msg = <$MsgType as Readable>::read(&mut ::std::io::Cursor::new(&w.0)).unwrap(); - let mut w_two = VecWriter(Vec::new()); - msg.write(&mut w_two).unwrap(); - assert_eq!(&w.0[..], &w_two.0[..]); - } + let msg = <$MsgType as Readable>::read(&mut ::std::io::Cursor::new(&w.0)).unwrap(); + let mut w_two = VecWriter(Vec::new()); + msg.write(&mut w_two).unwrap(); + assert_eq!(&w.0[..], &w_two.0[..]); } - } + }}; } // Tests a message that must survive roundtrip exactly, and must exactly empty the read buffer and // split it back out on re-serialization. #[macro_export] macro_rules! test_msg_exact { - ($MsgType: path, $data: ident) => { - { - use lightning::util::ser::{Writeable, Readable}; - let mut r = ::std::io::Cursor::new($data); - if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { - let mut w = VecWriter(Vec::new()); - msg.write(&mut w).unwrap(); - assert_eq!(&r.into_inner()[..], &w.0[..]); - assert_eq!(msg.serialized_length(), w.0.len()); - } + ($MsgType: path, $data: ident) => {{ + use lightning::util::ser::{Readable, Writeable}; + let mut r = ::std::io::Cursor::new($data); + if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { + let mut w = VecWriter(Vec::new()); + msg.write(&mut w).unwrap(); + assert_eq!(&r.into_inner()[..], &w.0[..]); + assert_eq!(msg.serialized_length(), w.0.len()); } - } + }}; } // Tests a message that must survive roundtrip exactly, modulo one "hole" which may be set to // any value on re-serialization. #[macro_export] macro_rules! test_msg_hole { - ($MsgType: path, $data: ident, $hole: expr, $hole_len: expr) => { - { - use lightning::util::ser::{Writeable, Readable}; - let mut r = ::std::io::Cursor::new($data); - if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { - let mut w = VecWriter(Vec::new()); - msg.write(&mut w).unwrap(); - let p = w.0.len() as usize; - assert_eq!(msg.serialized_length(), p); + ($MsgType: path, $data: ident, $hole: expr, $hole_len: expr) => {{ + use lightning::util::ser::{Readable, Writeable}; + let mut r = ::std::io::Cursor::new($data); + if let Ok(msg) = <$MsgType as Readable>::read(&mut r) { + let mut w = VecWriter(Vec::new()); + msg.write(&mut w).unwrap(); + let p = w.0.len() as usize; + assert_eq!(msg.serialized_length(), p); - assert_eq!(w.0.len(), p); - assert_eq!(&r.get_ref()[..$hole], &w.0[..$hole]); - assert_eq!(&r.get_ref()[$hole+$hole_len..p], &w.0[$hole+$hole_len..]); - } + assert_eq!(w.0.len(), p); + assert_eq!(&r.get_ref()[..$hole], &w.0[..$hole]); + assert_eq!(&r.get_ref()[$hole + $hole_len..p], &w.0[$hole + $hole_len..]); } - } + }}; } diff --git a/fuzz/src/offer_deser.rs b/fuzz/src/offer_deser.rs index deaa6f3588b..84b69d3fcd3 100644 --- a/fuzz/src/offer_deser.rs +++ b/fuzz/src/offer_deser.rs @@ -7,8 +7,8 @@ // 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 bitcoin::secp256k1::{Keypair, PublicKey, Secp256k1, SecretKey}; use core::convert::TryFrom; use lightning::offers::invoice_request::UnsignedInvoiceRequest; use lightning::offers::offer::{Amount, Offer, Quantity}; @@ -29,9 +29,9 @@ pub fn do_test(data: &[u8], _out: Out) { if let Ok(invoice_request) = build_response(&offer, pubkey) { invoice_request - .sign(|message: &UnsignedInvoiceRequest| + .sign(|message: &UnsignedInvoiceRequest| { Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - ) + }) .unwrap() .write(&mut buffer) .unwrap(); @@ -40,7 +40,7 @@ pub fn do_test(data: &[u8], _out: Out) { } fn build_response( - offer: &Offer, pubkey: PublicKey + offer: &Offer, pubkey: PublicKey, ) -> Result { let mut builder = offer.request_invoice(vec![42; 64], pubkey)?; diff --git a/fuzz/src/onion_hop_data.rs b/fuzz/src/onion_hop_data.rs index e7f51b99167..36aebb4e194 100644 --- a/fuzz/src/onion_hop_data.rs +++ b/fuzz/src/onion_hop_data.rs @@ -15,19 +15,25 @@ use lightning::util::test_utils; #[inline] pub fn onion_hop_data_test(data: &[u8], _out: Out) { - use lightning::util::ser::ReadableArgs; use bitcoin::secp256k1::PublicKey; + use lightning::util::ser::ReadableArgs; let mut r = ::std::io::Cursor::new(data); let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42)); - let _ = , &&test_utils::TestNodeSigner)>>::read(&mut r, (None, &&node_signer)); + let _ = , + &&test_utils::TestNodeSigner, + )>>::read(&mut r, (None, &&node_signer)); } #[no_mangle] pub extern "C" fn onion_hop_data_run(data: *const u8, datalen: usize) { - use lightning::util::ser::ReadableArgs; use bitcoin::secp256k1::PublicKey; + use lightning::util::ser::ReadableArgs; let data = unsafe { std::slice::from_raw_parts(data, datalen) }; let mut r = ::std::io::Cursor::new(data); let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42)); - let _ = , &&test_utils::TestNodeSigner)>>::read(&mut r, (None, &&node_signer)); + let _ = , + &&test_utils::TestNodeSigner, + )>>::read(&mut r, (None, &&node_signer)); } diff --git a/fuzz/src/onion_message.rs b/fuzz/src/onion_message.rs index 371a9421fc7..a8a290fefb3 100644 --- a/fuzz/src/onion_message.rs +++ b/fuzz/src/onion_message.rs @@ -1,10 +1,10 @@ // Imports that need to be added manually use bech32::u5; use bitcoin::blockdata::script::ScriptBuf; -use bitcoin::secp256k1::{PublicKey, Scalar, Secp256k1, SecretKey, self}; use bitcoin::secp256k1::ecdh::SharedSecret; use bitcoin::secp256k1::ecdsa::RecoverableSignature; use bitcoin::secp256k1::schnorr; +use bitcoin::secp256k1::{self, PublicKey, Scalar, Secp256k1, SecretKey}; use lightning::blinded_path::{BlindedPath, EmptyNodeIdLookUp}; use lightning::ln::features::InitFeatures; @@ -12,13 +12,16 @@ use lightning::ln::msgs::{self, DecodeError, OnionMessageHandler}; use lightning::ln::script::ShutdownScript; use lightning::offers::invoice::UnsignedBolt12Invoice; use lightning::offers::invoice_request::UnsignedInvoiceRequest; -use lightning::sign::{Recipient, KeyMaterial, EntropySource, NodeSigner, SignerProvider}; -use lightning::util::test_channel_signer::TestChannelSigner; -use lightning::util::logger::Logger; -use lightning::util::ser::{Readable, Writeable, Writer}; -use lightning::onion_message::messenger::{CustomOnionMessageHandler, Destination, MessageRouter, OnionMessagePath, OnionMessenger, PendingOnionMessage, Responder, ResponseInstruction}; +use lightning::onion_message::messenger::{ + CustomOnionMessageHandler, Destination, MessageRouter, OnionMessagePath, OnionMessenger, + PendingOnionMessage, Responder, ResponseInstruction, +}; use lightning::onion_message::offers::{OffersMessage, OffersMessageHandler}; use lightning::onion_message::packet::OnionMessageContents; +use lightning::sign::{EntropySource, KeyMaterial, NodeSigner, Recipient, SignerProvider}; +use lightning::util::logger::Logger; +use lightning::util::ser::{Readable, Writeable, Writer}; +use lightning::util::test_channel_signer::TestChannelSigner; use crate::utils::test_logger; @@ -32,17 +35,19 @@ pub fn do_test(data: &[u8], logger: &L) { let mut secret_bytes = [1; 32]; secret_bytes[31] = 2; let secret = SecretKey::from_slice(&secret_bytes).unwrap(); - let keys_manager = KeyProvider { - node_secret: secret, - counter: AtomicU64::new(0), - }; + let keys_manager = KeyProvider { node_secret: secret, counter: AtomicU64::new(0) }; let node_id_lookup = EmptyNodeIdLookUp {}; let message_router = TestMessageRouter {}; let offers_msg_handler = TestOffersMessageHandler {}; let custom_msg_handler = TestCustomMessageHandler {}; let onion_messenger = OnionMessenger::new( - &keys_manager, &keys_manager, logger, &node_id_lookup, &message_router, - &offers_msg_handler, &custom_msg_handler + &keys_manager, + &keys_manager, + logger, + &node_id_lookup, + &message_router, + &offers_msg_handler, + &custom_msg_handler, ); let peer_node_id = { @@ -78,13 +83,9 @@ struct TestMessageRouter {} impl MessageRouter for TestMessageRouter { fn find_path( - &self, _sender: PublicKey, _peers: Vec, destination: Destination + &self, _sender: PublicKey, _peers: Vec, destination: Destination, ) -> Result { - Ok(OnionMessagePath { - intermediate_nodes: vec![], - destination, - first_node_addresses: None, - }) + Ok(OnionMessagePath { intermediate_nodes: vec![], destination, first_node_addresses: None }) } fn create_blinded_paths( @@ -97,7 +98,9 @@ impl MessageRouter for TestMessageRouter { struct TestOffersMessageHandler {} impl OffersMessageHandler for TestOffersMessageHandler { - fn handle_message(&self, _message: OffersMessage, _responder: Option) -> ResponseInstruction { + fn handle_message( + &self, _message: OffersMessage, _responder: Option, + ) -> ResponseInstruction { ResponseInstruction::NoResponse } } @@ -127,16 +130,20 @@ struct TestCustomMessageHandler {} impl CustomOnionMessageHandler for TestCustomMessageHandler { type CustomMessage = TestCustomMessage; - fn handle_custom_message(&self, message: Self::CustomMessage, responder: Option) -> ResponseInstruction { + fn handle_custom_message( + &self, message: Self::CustomMessage, responder: Option, + ) -> ResponseInstruction { match responder { Some(responder) => responder.respond(message), - None => ResponseInstruction::NoResponse + None => ResponseInstruction::NoResponse, } } - fn read_custom_message(&self, _message_type: u64, buffer: &mut R) -> Result, msgs::DecodeError> { + fn read_custom_message( + &self, _message_type: u64, buffer: &mut R, + ) -> Result, msgs::DecodeError> { let mut buf = Vec::new(); buffer.read_to_end(&mut buf)?; - return Ok(Some(TestCustomMessage {})) + return Ok(Some(TestCustomMessage {})); } fn release_pending_custom_messages(&self) -> Vec> { vec![] @@ -158,8 +165,11 @@ struct KeyProvider { impl EntropySource for KeyProvider { fn get_secure_random_bytes(&self) -> [u8; 32] { let ctr = self.counter.fetch_add(1, Ordering::Relaxed); - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (ctr >> 8*7) as u8, (ctr >> 8*6) as u8, (ctr >> 8*5) as u8, (ctr >> 8*4) as u8, (ctr >> 8*3) as u8, (ctr >> 8*2) as u8, (ctr >> 8*1) as u8, 14, (ctr >> 8*0) as u8] + #[rustfmt::skip] + let random_bytes = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + (ctr >> 8*7) as u8, (ctr >> 8*6) as u8, (ctr >> 8*5) as u8, (ctr >> 8*4) as u8, + (ctr >> 8*3) as u8, (ctr >> 8*2) as u8, (ctr >> 8*1) as u8, 14, (ctr >> 8*0) as u8]; + random_bytes } } @@ -167,15 +177,17 @@ impl NodeSigner for KeyProvider { fn get_node_id(&self, recipient: Recipient) -> Result { let node_secret = match recipient { Recipient::Node => Ok(&self.node_secret), - Recipient::PhantomNode => Err(()) + Recipient::PhantomNode => Err(()), }?; Ok(PublicKey::from_secret_key(&Secp256k1::signing_only(), node_secret)) } - fn ecdh(&self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar>) -> Result { + fn ecdh( + &self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar>, + ) -> Result { let mut node_secret = match recipient { Recipient::Node => Ok(self.node_secret.clone()), - Recipient::PhantomNode => Err(()) + Recipient::PhantomNode => Err(()), }?; if let Some(tweak) = tweak { node_secret = node_secret.mul_tweak(tweak).map_err(|_| ())?; @@ -183,14 +195,18 @@ impl NodeSigner for KeyProvider { Ok(SharedSecret::new(other_key, &node_secret)) } - fn get_inbound_payment_key_material(&self) -> KeyMaterial { unreachable!() } + fn get_inbound_payment_key_material(&self) -> KeyMaterial { + unreachable!() + } - fn sign_invoice(&self, _hrp_bytes: &[u8], _invoice_data: &[u5], _recipient: Recipient) -> Result { + fn sign_invoice( + &self, _hrp_bytes: &[u8], _invoice_data: &[u5], _recipient: Recipient, + ) -> Result { unreachable!() } fn sign_bolt12_invoice_request( - &self, _invoice_request: &UnsignedInvoiceRequest + &self, _invoice_request: &UnsignedInvoiceRequest, ) -> Result { unreachable!() } @@ -201,7 +217,9 @@ impl NodeSigner for KeyProvider { unreachable!() } - fn sign_gossip_message(&self, _msg: lightning::ln::msgs::UnsignedGossipMessage) -> Result { + fn sign_gossip_message( + &self, _msg: lightning::ln::msgs::UnsignedGossipMessage, + ) -> Result { unreachable!() } } @@ -211,17 +229,29 @@ impl SignerProvider for KeyProvider { #[cfg(taproot)] type TaprootSigner = TestChannelSigner; - fn generate_channel_keys_id(&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] { unreachable!() } + fn generate_channel_keys_id( + &self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128, + ) -> [u8; 32] { + unreachable!() + } - fn derive_channel_signer(&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner { + fn derive_channel_signer( + &self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32], + ) -> Self::EcdsaSigner { unreachable!() } - fn read_chan_signer(&self, _data: &[u8]) -> Result { unreachable!() } + fn read_chan_signer(&self, _data: &[u8]) -> Result { + unreachable!() + } - fn get_destination_script(&self, _channel_keys_id: [u8; 32]) -> Result { unreachable!() } + fn get_destination_script(&self, _channel_keys_id: [u8; 32]) -> Result { + unreachable!() + } - fn get_shutdown_scriptpubkey(&self) -> Result { unreachable!() } + fn get_shutdown_scriptpubkey(&self) -> Result { + unreachable!() + } } #[cfg(test)] @@ -237,8 +267,17 @@ mod tests { } impl Logger for TrackingLogger { fn log(&self, record: Record) { - *self.lines.lock().unwrap().entry((record.module_path.to_string(), format!("{}", record.args))).or_insert(0) += 1; - println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args); + let mut lines_lock = self.lines.lock().unwrap(); + let key = (record.module_path.to_string(), format!("{}", record.args)); + *lines_lock.entry(key).or_insert(0) += 1; + println!( + "{:<5} [{} : {}, {}] {}", + record.level.to_string(), + record.module_path, + record.file, + record.line, + record.args + ); } } diff --git a/fuzz/src/peer_crypt.rs b/fuzz/src/peer_crypt.rs index 41d8c093606..b01aa02400b 100644 --- a/fuzz/src/peer_crypt.rs +++ b/fuzz/src/peer_crypt.rs @@ -7,33 +7,30 @@ // You may not use this file except in accordance with one or both of these // licenses. -use lightning::ln::peer_channel_encryptor::{PeerChannelEncryptor, MessageBuf}; +use lightning::ln::peer_channel_encryptor::{MessageBuf, PeerChannelEncryptor}; use lightning::util::test_utils::TestNodeSigner; -use bitcoin::secp256k1::{Secp256k1, PublicKey, SecretKey}; +use bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey}; use crate::utils::test_logger; #[inline] fn slice_to_be16(v: &[u8]) -> u16 { - ((v[0] as u16) << 8*1) | - ((v[1] as u16) << 8*0) + ((v[0] as u16) << 8 * 1) | ((v[1] as u16) << 8 * 0) } #[inline] pub fn do_test(data: &[u8]) { let mut read_pos = 0; macro_rules! get_slice { - ($len: expr) => { - { - let slice_len = $len as usize; - if data.len() < read_pos + slice_len { - return; - } - read_pos += slice_len; - &data[read_pos - slice_len..read_pos] + ($len: expr) => {{ + let slice_len = $len as usize; + if data.len() < read_pos + slice_len { + return; } - } + read_pos += slice_len; + &data[read_pos - slice_len..read_pos] + }}; } let secp_ctx = Secp256k1::signing_only(); @@ -63,7 +60,12 @@ pub fn do_test(data: &[u8]) { crypter } else { let mut crypter = PeerChannelEncryptor::new_inbound(&&node_signer); - match crypter.process_act_one_with_keys(get_slice!(50), &&node_signer, ephemeral_key, &secp_ctx) { + match crypter.process_act_one_with_keys( + get_slice!(50), + &&node_signer, + ephemeral_key, + &secp_ctx, + ) { Ok(_) => {}, Err(_) => return, } @@ -77,9 +79,11 @@ pub fn do_test(data: &[u8]) { let mut buf = [0; 65536 + 16]; loop { if get_slice!(1)[0] == 0 { - crypter.encrypt_buffer(MessageBuf::from_encoded(&get_slice!(slice_to_be16(get_slice!(2))))); + crypter.encrypt_buffer(MessageBuf::from_encoded(&get_slice!(slice_to_be16( + get_slice!(2) + )))); } else { - let len = match crypter.decrypt_length_header(get_slice!(16+2)) { + let len = match crypter.decrypt_length_header(get_slice!(16 + 2)) { Ok(len) => len, Err(_) => return, }; diff --git a/fuzz/src/process_network_graph.rs b/fuzz/src/process_network_graph.rs index b4c6a29e8a9..980c147e96a 100644 --- a/fuzz/src/process_network_graph.rs +++ b/fuzz/src/process_network_graph.rs @@ -6,7 +6,8 @@ use crate::utils::test_logger; /// Actual fuzz test, method signature and name are fixed fn do_test(data: &[u8], out: Out) { let logger = test_logger::TestLogger::new("".to_owned(), out); - let network_graph = lightning::routing::gossip::NetworkGraph::new(bitcoin::Network::Bitcoin, &logger); + let network_graph = + lightning::routing::gossip::NetworkGraph::new(bitcoin::Network::Bitcoin, &logger); let rapid_sync = RapidGossipSync::new(&network_graph, &logger); let _ = rapid_sync.update_network_graph(data); } diff --git a/fuzz/src/refund_deser.rs b/fuzz/src/refund_deser.rs index 7937ca1efc6..11907b6d696 100644 --- a/fuzz/src/refund_deser.rs +++ b/fuzz/src/refund_deser.rs @@ -7,17 +7,17 @@ // You may not use this file except in accordance with one or both of these // licenses. -use bitcoin::secp256k1::{Keypair, PublicKey, Secp256k1, SecretKey, self}; use crate::utils::test_logger; +use bitcoin::secp256k1::{self, Keypair, PublicKey, Secp256k1, SecretKey}; use core::convert::TryFrom; -use lightning::blinded_path::BlindedPath; use lightning::blinded_path::message::ForwardNode; -use lightning::sign::EntropySource; -use lightning::ln::PaymentHash; +use lightning::blinded_path::BlindedPath; use lightning::ln::features::BlindedHopFeatures; +use lightning::ln::PaymentHash; use lightning::offers::invoice::{BlindedPayInfo, UnsignedBolt12Invoice}; use lightning::offers::parse::Bolt12SemanticError; use lightning::offers::refund::Refund; +use lightning::sign::EntropySource; use lightning::util::ser::Writeable; #[inline] @@ -34,9 +34,9 @@ pub fn do_test(data: &[u8], _out: Out) { if let Ok(invoice) = build_response(&refund, pubkey, &secp_ctx) { invoice - .sign(|message: &UnsignedBolt12Invoice| + .sign(|message: &UnsignedBolt12Invoice| { Ok(secp_ctx.sign_schnorr_no_aux_rand(message.as_ref().as_digest(), &keys)) - ) + }) .unwrap() .write(&mut buffer) .unwrap(); @@ -47,7 +47,9 @@ pub fn do_test(data: &[u8], _out: Out) { struct Randomness; impl EntropySource for Randomness { - fn get_secure_random_bytes(&self) -> [u8; 32] { [42; 32] } + fn get_secure_random_bytes(&self) -> [u8; 32] { + [42; 32] + } } fn pubkey(byte: u8) -> PublicKey { @@ -60,7 +62,7 @@ fn privkey(byte: u8) -> SecretKey { } fn build_response( - refund: &Refund, signing_pubkey: PublicKey, secp_ctx: &Secp256k1 + refund: &Refund, signing_pubkey: PublicKey, secp_ctx: &Secp256k1, ) -> Result { let entropy_source = Randomness {}; let intermediate_nodes = [ @@ -74,8 +76,10 @@ fn build_response( ], ]; let paths = vec![ - BlindedPath::new_for_message(&intermediate_nodes[0], pubkey(42), &entropy_source, secp_ctx).unwrap(), - BlindedPath::new_for_message(&intermediate_nodes[1], pubkey(42), &entropy_source, secp_ctx).unwrap(), + BlindedPath::new_for_message(&intermediate_nodes[0], pubkey(42), &entropy_source, secp_ctx) + .unwrap(), + BlindedPath::new_for_message(&intermediate_nodes[1], pubkey(42), &entropy_source, secp_ctx) + .unwrap(), ]; let payinfo = vec![ diff --git a/fuzz/src/router.rs b/fuzz/src/router.rs index 2a36d890936..a4002682111 100644 --- a/fuzz/src/router.rs +++ b/fuzz/src/router.rs @@ -14,57 +14,59 @@ use bitcoin::blockdata::transaction::TxOut; use lightning::blinded_path::{BlindedHop, BlindedPath, IntroductionNode}; use lightning::chain::transaction::OutPoint; -use lightning::ln::ChannelId; -use lightning::ln::channel_state::{ChannelDetails, ChannelCounterparty, ChannelShutdownState}; +use lightning::ln::channel_state::{ChannelCounterparty, ChannelDetails, ChannelShutdownState}; use lightning::ln::channelmanager; use lightning::ln::features::{BlindedHopFeatures, Bolt12InvoiceFeatures}; use lightning::ln::msgs; +use lightning::ln::ChannelId; use lightning::offers::invoice::BlindedPayInfo; use lightning::routing::gossip::{NetworkGraph, RoutingFees}; +use lightning::routing::router::{ + find_route, PaymentParameters, RouteHint, RouteHintHop, RouteParameters, +}; +use lightning::routing::scoring::{ + ProbabilisticScorer, ProbabilisticScoringDecayParameters, ProbabilisticScoringFeeParameters, +}; use lightning::routing::utxo::{UtxoFuture, UtxoLookup, UtxoLookupError, UtxoResult}; -use lightning::routing::router::{find_route, PaymentParameters, RouteHint, RouteHintHop, RouteParameters}; -use lightning::routing::scoring::{ProbabilisticScorer, ProbabilisticScoringFeeParameters, ProbabilisticScoringDecayParameters}; use lightning::util::config::UserConfig; use lightning::util::hash_tables::*; use lightning::util::ser::Readable; use bitcoin::hashes::Hash; -use bitcoin::secp256k1::PublicKey; use bitcoin::network::Network; +use bitcoin::secp256k1::PublicKey; use crate::utils::test_logger; use std::convert::TryInto; -use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::Arc; #[inline] pub fn slice_to_be16(v: &[u8]) -> u16 { - ((v[0] as u16) << 8*1) | - ((v[1] as u16) << 8*0) + ((v[0] as u16) << 8 * 1) | ((v[1] as u16) << 8 * 0) } #[inline] pub fn slice_to_be32(v: &[u8]) -> u32 { - ((v[0] as u32) << 8*3) | - ((v[1] as u32) << 8*2) | - ((v[2] as u32) << 8*1) | - ((v[3] as u32) << 8*0) + ((v[0] as u32) << 8 * 3) + | ((v[1] as u32) << 8 * 2) + | ((v[2] as u32) << 8 * 1) + | ((v[3] as u32) << 8 * 0) } #[inline] pub fn slice_to_be64(v: &[u8]) -> u64 { - ((v[0] as u64) << 8*7) | - ((v[1] as u64) << 8*6) | - ((v[2] as u64) << 8*5) | - ((v[3] as u64) << 8*4) | - ((v[4] as u64) << 8*3) | - ((v[5] as u64) << 8*2) | - ((v[6] as u64) << 8*1) | - ((v[7] as u64) << 8*0) + ((v[0] as u64) << 8 * 7) + | ((v[1] as u64) << 8 * 6) + | ((v[2] as u64) << 8 * 5) + | ((v[3] as u64) << 8 * 4) + | ((v[4] as u64) << 8 * 3) + | ((v[5] as u64) << 8 * 2) + | ((v[6] as u64) << 8 * 1) + | ((v[7] as u64) << 8 * 0) } - struct InputData { data: Vec, read_pos: AtomicUsize, @@ -93,7 +95,9 @@ struct FuzzChainSource<'a, 'b, Out: test_logger::Output> { impl UtxoLookup for FuzzChainSource<'_, '_, Out> { fn get_utxo(&self, _chain_hash: &ChainHash, _short_channel_id: u64) -> UtxoResult { let input_slice = self.input.get_slice(2); - if input_slice.is_none() { return UtxoResult::Sync(Err(UtxoLookupError::UnknownTx)); } + if input_slice.is_none() { + return UtxoResult::Sync(Err(UtxoLookupError::UnknownTx)); + } let input_slice = input_slice.unwrap(); let txo_res = TxOut { value: Amount::from_sat(if input_slice[0] % 2 == 0 { 1_000_000 } else { 1_000 }), @@ -122,17 +126,14 @@ impl UtxoLookup for FuzzChainSource<'_, '_, Out> { #[inline] pub fn do_test(data: &[u8], out: Out) { - let input = Arc::new(InputData { - data: data.to_vec(), - read_pos: AtomicUsize::new(0), - }); + let input = Arc::new(InputData { data: data.to_vec(), read_pos: AtomicUsize::new(0) }); macro_rules! get_slice_nonadvancing { ($len: expr) => { match input.get_slice_nonadvancing($len as usize) { Some(slice) => slice, None => return, } - } + }; } macro_rules! get_slice { ($len: expr) => { @@ -140,7 +141,7 @@ pub fn do_test(data: &[u8], out: Out) { Some(slice) => slice, None => return, } - } + }; } macro_rules! decode_msg { @@ -160,18 +161,16 @@ pub fn do_test(data: &[u8], out: Out) { msgs::DecodeError::Io(e) => panic!("{:?}", e), msgs::DecodeError::UnsupportedCompression => return, msgs::DecodeError::DangerousValue => return, - } + }, } - }} + }}; } macro_rules! decode_msg_with_len16 { - ($MsgType: path, $excess: expr) => { - { - let extra_len = slice_to_be16(get_slice_nonadvancing!(2)); - decode_msg!($MsgType, 2 + (extra_len as usize) + $excess) - } - } + ($MsgType: path, $excess: expr) => {{ + let extra_len = slice_to_be16(get_slice_nonadvancing!(2)); + decode_msg!($MsgType, 2 + (extra_len as usize) + $excess) + }}; } macro_rules! get_pubkey_from_node_id { @@ -180,7 +179,7 @@ pub fn do_test(data: &[u8], out: Out) { Ok(pk) => pk, Err(_) => return, } - } + }; } macro_rules! get_pubkey { @@ -189,17 +188,14 @@ pub fn do_test(data: &[u8], out: Out) { Ok(key) => key, Err(_) => return, } - } + }; } let logger = test_logger::TestLogger::new("".to_owned(), out); let our_pubkey = get_pubkey!(); let net_graph = NetworkGraph::new(Network::Bitcoin, &logger); - let chain_source = FuzzChainSource { - input: Arc::clone(&input), - net_graph: &net_graph, - }; + let chain_source = FuzzChainSource { input: Arc::clone(&input), net_graph: &net_graph }; let mut node_pks = new_hash_map(); let mut scid = 42; @@ -211,32 +207,41 @@ pub fn do_test(data: &[u8], out: Out) { count => { for _ in 0..count { scid += 1; - let (rnid, _) = - node_pks.iter().skip(u16::from_be_bytes(get_slice!(2).try_into().unwrap()) as usize % node_pks.len()).next().unwrap(); + let skip = u16::from_be_bytes(get_slice!(2).try_into().unwrap()) as usize + % node_pks.len(); + let (rnid, _) = node_pks.iter().skip(skip).next().unwrap(); let capacity = u64::from_be_bytes(get_slice!(8).try_into().unwrap()); $first_hops_vec.push(ChannelDetails { channel_id: ChannelId::new_zero(), counterparty: ChannelCounterparty { node_id: *rnid, - features: channelmanager::provided_init_features(&UserConfig::default()), + features: channelmanager::provided_init_features( + &UserConfig::default(), + ), unspendable_punishment_reserve: 0, forwarding_info: None, outbound_htlc_minimum_msat: None, outbound_htlc_maximum_msat: None, }, - funding_txo: Some(OutPoint { txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(), index: 0 }), + funding_txo: Some(OutPoint { + txid: bitcoin::Txid::from_slice(&[0; 32]).unwrap(), + index: 0, + }), channel_type: None, short_channel_id: Some(scid), inbound_scid_alias: None, outbound_scid_alias: None, channel_value_satoshis: capacity, - user_channel_id: 0, inbound_capacity_msat: 0, + user_channel_id: 0, + inbound_capacity_msat: 0, unspendable_punishment_reserve: None, confirmations_required: None, confirmations: None, force_close_spend_delay: None, - is_outbound: true, is_channel_ready: true, - is_usable: true, is_public: true, + is_outbound: true, + is_channel_ready: true, + is_usable: true, + is_public: true, balance_msat: 0, outbound_capacity_msat: capacity.saturating_mul(1000), next_outbound_htlc_limit_msat: capacity.saturating_mul(1000), @@ -253,7 +258,7 @@ pub fn do_test(data: &[u8], out: Out) { Some(&$first_hops_vec[..]) }, } - } + }; } macro_rules! last_hops { @@ -261,8 +266,8 @@ pub fn do_test(data: &[u8], out: Out) { let count = get_slice!(1)[0]; for _ in 0..count { scid += 1; - let (rnid, _) = - node_pks.iter().skip(slice_to_be16(get_slice!(2)) as usize % node_pks.len()).next().unwrap(); + let skip = slice_to_be16(get_slice!(2)) as usize % node_pks.len(); + let (rnid, _) = node_pks.iter().skip(skip).next().unwrap(); $last_hops.push(RouteHint(vec![RouteHintHop { src_node_id: *rnid, short_channel_id: scid, @@ -275,30 +280,47 @@ pub fn do_test(data: &[u8], out: Out) { htlc_maximum_msat: None, }])); } - } + }; } macro_rules! find_routes { ($first_hops: expr, $node_pks: expr, $route_params: expr) => { - let scorer = ProbabilisticScorer::new(ProbabilisticScoringDecayParameters::default(), &net_graph, &logger); + let scorer = ProbabilisticScorer::new( + ProbabilisticScoringDecayParameters::default(), + &net_graph, + &logger, + ); let random_seed_bytes: [u8; 32] = [get_slice!(1)[0]; 32]; for (target, ()) in $node_pks { let final_value_msat = slice_to_be64(get_slice!(8)); let final_cltv_expiry_delta = slice_to_be32(get_slice!(4)); let route_params = $route_params(final_value_msat, final_cltv_expiry_delta, target); - let _ = find_route(&our_pubkey, &route_params, &net_graph, - $first_hops.map(|c| c.iter().collect::>()).as_ref().map(|a| a.as_slice()), - &logger, &scorer, &ProbabilisticScoringFeeParameters::default(), &random_seed_bytes); + let _ = find_route( + &our_pubkey, + &route_params, + &net_graph, + $first_hops + .map(|c| c.iter().collect::>()) + .as_ref() + .map(|a| a.as_slice()), + &logger, + &scorer, + &ProbabilisticScoringFeeParameters::default(), + &random_seed_bytes, + ); } - } + }; } loop { match get_slice!(1)[0] { 0 => { let start_len = slice_to_be16(&get_slice_nonadvancing!(2)[0..2]) as usize; - let addr_len = slice_to_be16(&get_slice_nonadvancing!(start_len+2 + 74)[start_len+2 + 72..start_len+2 + 74]); - if addr_len > (37+1)*4 { + let addr_len = slice_to_be16( + &get_slice_nonadvancing!(start_len + 2 + 74) + [start_len + 2 + 72..start_len + 2 + 74], + ); + if addr_len > (37 + 1) * 4 { return; } let msg = decode_msg_with_len16!(msgs::UnsignedNodeAnnouncement, 288); @@ -306,20 +328,26 @@ pub fn do_test(data: &[u8], out: Out) { let _ = net_graph.update_node_from_unsigned_announcement(&msg); }, 1 => { - let msg = decode_msg_with_len16!(msgs::UnsignedChannelAnnouncement, 32+8+33*4); + let msg = + decode_msg_with_len16!(msgs::UnsignedChannelAnnouncement, 32 + 8 + 33 * 4); node_pks.insert(get_pubkey_from_node_id!(msg.node_id_1), ()); node_pks.insert(get_pubkey_from_node_id!(msg.node_id_2), ()); - let _ = net_graph.update_channel_from_unsigned_announcement:: - <&FuzzChainSource<'_, '_, Out>>(&msg, &None); + let _ = net_graph + .update_channel_from_unsigned_announcement::<&FuzzChainSource<'_, '_, Out>>( + &msg, &None, + ); }, 2 => { - let msg = decode_msg_with_len16!(msgs::UnsignedChannelAnnouncement, 32+8+33*4); + let msg = + decode_msg_with_len16!(msgs::UnsignedChannelAnnouncement, 32 + 8 + 33 * 4); node_pks.insert(get_pubkey_from_node_id!(msg.node_id_1), ()); node_pks.insert(get_pubkey_from_node_id!(msg.node_id_2), ()); - let _ = net_graph.update_channel_from_unsigned_announcement(&msg, &Some(&chain_source)); + let _ = + net_graph.update_channel_from_unsigned_announcement(&msg, &Some(&chain_source)); }, 3 => { - let _ = net_graph.update_channel_unsigned(&decode_msg!(msgs::UnsignedChannelUpdate, 72)); + let _ = net_graph + .update_channel_unsigned(&decode_msg!(msgs::UnsignedChannelUpdate, 72)); }, 4 => { let short_channel_id = slice_to_be64(get_slice!(8)); @@ -333,12 +361,18 @@ pub fn do_test(data: &[u8], out: Out) { let first_hops = first_hops!(first_hops_vec); let mut last_hops = Vec::new(); last_hops!(last_hops); - find_routes!(first_hops, node_pks.iter(), |final_amt, final_delta, target: &PublicKey| { - RouteParameters::from_payment_params_and_value( - PaymentParameters::from_node_id(*target, final_delta) - .with_route_hints(last_hops.clone()).unwrap(), - final_amt) - }); + find_routes!( + first_hops, + node_pks.iter(), + |final_amt, final_delta, target: &PublicKey| { + RouteParameters::from_payment_params_and_value( + PaymentParameters::from_node_id(*target, final_delta) + .with_route_hints(last_hops.clone()) + .unwrap(), + final_amt, + ) + } + ); }, x => { let mut first_hops_vec = Vec::new(); @@ -346,38 +380,47 @@ pub fn do_test(data: &[u8], out: Out) { let mut last_hops_unblinded = Vec::new(); last_hops!(last_hops_unblinded); let dummy_pk = PublicKey::from_slice(&[2; 33]).unwrap(); - let last_hops: Vec<(BlindedPayInfo, BlindedPath)> = last_hops_unblinded.into_iter().map(|hint| { - let hop = &hint.0[0]; - let payinfo = BlindedPayInfo { - fee_base_msat: hop.fees.base_msat, - fee_proportional_millionths: hop.fees.proportional_millionths, - htlc_minimum_msat: hop.htlc_minimum_msat.unwrap(), - htlc_maximum_msat: hop.htlc_minimum_msat.unwrap().saturating_mul(100), - cltv_expiry_delta: hop.cltv_expiry_delta, - features: BlindedHopFeatures::empty(), - }; - let num_blinded_hops = x % 250; - let mut blinded_hops = Vec::new(); - for _ in 0..num_blinded_hops { - blinded_hops.push(BlindedHop { - blinded_node_id: dummy_pk, - encrypted_payload: Vec::new() - }); - } - (payinfo, BlindedPath { - introduction_node: IntroductionNode::NodeId(hop.src_node_id), - blinding_point: dummy_pk, - blinded_hops, + let last_hops: Vec<(BlindedPayInfo, BlindedPath)> = last_hops_unblinded + .into_iter() + .map(|hint| { + let hop = &hint.0[0]; + let payinfo = BlindedPayInfo { + fee_base_msat: hop.fees.base_msat, + fee_proportional_millionths: hop.fees.proportional_millionths, + htlc_minimum_msat: hop.htlc_minimum_msat.unwrap(), + htlc_maximum_msat: hop.htlc_minimum_msat.unwrap().saturating_mul(100), + cltv_expiry_delta: hop.cltv_expiry_delta, + features: BlindedHopFeatures::empty(), + }; + let num_blinded_hops = x % 250; + let mut blinded_hops = Vec::new(); + for _ in 0..num_blinded_hops { + blinded_hops.push(BlindedHop { + blinded_node_id: dummy_pk, + encrypted_payload: Vec::new(), + }); + } + ( + payinfo, + BlindedPath { + introduction_node: IntroductionNode::NodeId(hop.src_node_id), + blinding_point: dummy_pk, + blinded_hops, + }, + ) }) - }).collect(); + .collect(); let mut features = Bolt12InvoiceFeatures::empty(); features.set_basic_mpp_optional(); find_routes!(first_hops, [(dummy_pk, ())].iter(), |final_amt, _, _| { - RouteParameters::from_payment_params_and_value(PaymentParameters::blinded(last_hops.clone()) - .with_bolt12_features(features.clone()).unwrap(), - final_amt) + RouteParameters::from_payment_params_and_value( + PaymentParameters::blinded(last_hops.clone()) + .with_bolt12_features(features.clone()) + .unwrap(), + final_amt, + ) }); - } + }, } } } diff --git a/fuzz/src/utils/test_logger.rs b/fuzz/src/utils/test_logger.rs index 5e5817e23f1..6d9de02e387 100644 --- a/fuzz/src/utils/test_logger.rs +++ b/fuzz/src/utils/test_logger.rs @@ -8,10 +8,10 @@ // licenses. use lightning::util::logger::{Logger, Record}; -use std::sync::{Arc, Mutex}; use std::io::Write; +use std::sync::{Arc, Mutex}; -pub trait Output : Clone + 'static { +pub trait Output: Clone + 'static { fn locked_write(&self, data: &[u8]); } @@ -36,7 +36,7 @@ impl StringBuffer { } } -pub struct TestLogger { +pub struct TestLogger { id: String, out: Out, } @@ -52,13 +52,22 @@ impl<'a, Out: Output> Write for LockedWriteAdapter<'a, Out> { self.0.locked_write(data); Ok(data.len()) } - fn flush(&mut self) -> Result<(), std::io::Error> { Ok(()) } + fn flush(&mut self) -> Result<(), std::io::Error> { + Ok(()) + } } impl Logger for TestLogger { fn log(&self, record: Record) { - write!(LockedWriteAdapter(&self.out), - "{:<5} {} [{} : {}] {}\n", record.level.to_string(), self.id, record.module_path, record.line, record.args) - .unwrap(); + write!( + LockedWriteAdapter(&self.out), + "{:<5} {} [{} : {}] {}\n", + record.level.to_string(), + self.id, + record.module_path, + record.line, + record.args + ) + .unwrap(); } } diff --git a/fuzz/src/utils/test_persister.rs b/fuzz/src/utils/test_persister.rs index a99c397d0b2..7de3cc6bebb 100644 --- a/fuzz/src/utils/test_persister.rs +++ b/fuzz/src/utils/test_persister.rs @@ -1,6 +1,6 @@ use lightning::chain; -use lightning::chain::{chainmonitor, channelmonitor}; use lightning::chain::transaction::OutPoint; +use lightning::chain::{chainmonitor, channelmonitor}; use lightning::util::test_channel_signer::TestChannelSigner; use std::sync::Mutex; @@ -9,14 +9,18 @@ pub struct TestPersister { pub update_ret: Mutex, } impl chainmonitor::Persist for TestPersister { - fn persist_new_channel(&self, _funding_txo: OutPoint, _data: &channelmonitor::ChannelMonitor) -> chain::ChannelMonitorUpdateStatus { + fn persist_new_channel( + &self, _funding_txo: OutPoint, _data: &channelmonitor::ChannelMonitor, + ) -> chain::ChannelMonitorUpdateStatus { self.update_ret.lock().unwrap().clone() } - fn update_persisted_channel(&self, _funding_txo: OutPoint, _update: Option<&channelmonitor::ChannelMonitorUpdate>, _data: &channelmonitor::ChannelMonitor) -> chain::ChannelMonitorUpdateStatus { + fn update_persisted_channel( + &self, _funding_txo: OutPoint, _update: Option<&channelmonitor::ChannelMonitorUpdate>, + _data: &channelmonitor::ChannelMonitor, + ) -> chain::ChannelMonitorUpdateStatus { self.update_ret.lock().unwrap().clone() } - fn archive_persisted_channel(&self, _: OutPoint) { - } + fn archive_persisted_channel(&self, _: OutPoint) {} } diff --git a/rustfmt_excluded_files b/rustfmt_excluded_files index 36d85ef2061..f947b95923e 100644 --- a/rustfmt_excluded_files +++ b/rustfmt_excluded_files @@ -1,136 +1,7 @@ ./bench/benches/bench.rs -./fuzz/src/base32.rs -./fuzz/src/bech32_parse.rs -./fuzz/src/bin/base32_target.rs -./fuzz/src/bin/bech32_parse_target.rs -./fuzz/src/bin/bolt11_deser_target.rs -./fuzz/src/bin/chanmon_consistency_target.rs -./fuzz/src/bin/chanmon_deser_target.rs -./fuzz/src/bin/fromstr_to_netaddress_target.rs -./fuzz/src/bin/full_stack_target.rs -./fuzz/src/bin/indexedmap_target.rs -./fuzz/src/bin/invoice_deser_target.rs -./fuzz/src/bin/invoice_request_deser_target.rs -./fuzz/src/bin/msg_accept_channel_target.rs -./fuzz/src/bin/msg_accept_channel_v2_target.rs -./fuzz/src/bin/msg_announcement_signatures_target.rs -./fuzz/src/bin/msg_channel_announcement_target.rs -./fuzz/src/bin/msg_channel_details_target.rs -./fuzz/src/bin/msg_channel_ready_target.rs -./fuzz/src/bin/msg_channel_reestablish_target.rs -./fuzz/src/bin/msg_channel_update_target.rs -./fuzz/src/bin/msg_closing_signed_target.rs -./fuzz/src/bin/msg_commitment_signed_target.rs -./fuzz/src/bin/msg_decoded_onion_error_packet_target.rs -./fuzz/src/bin/msg_error_message_target.rs -./fuzz/src/bin/msg_funding_created_target.rs -./fuzz/src/bin/msg_funding_signed_target.rs -./fuzz/src/bin/msg_gossip_timestamp_filter_target.rs -./fuzz/src/bin/msg_init_target.rs -./fuzz/src/bin/msg_node_announcement_target.rs -./fuzz/src/bin/msg_open_channel_target.rs -./fuzz/src/bin/msg_open_channel_v2_target.rs -./fuzz/src/bin/msg_ping_target.rs -./fuzz/src/bin/msg_pong_target.rs -./fuzz/src/bin/msg_query_channel_range_target.rs -./fuzz/src/bin/msg_query_short_channel_ids_target.rs -./fuzz/src/bin/msg_reply_channel_range_target.rs -./fuzz/src/bin/msg_reply_short_channel_ids_end_target.rs -./fuzz/src/bin/msg_revoke_and_ack_target.rs -./fuzz/src/bin/msg_shutdown_target.rs -./fuzz/src/bin/msg_splice_ack_target.rs -./fuzz/src/bin/msg_splice_locked_target.rs -./fuzz/src/bin/msg_splice_target.rs -./fuzz/src/bin/msg_stfu_target.rs -./fuzz/src/bin/msg_tx_abort_target.rs -./fuzz/src/bin/msg_tx_ack_rbf_target.rs -./fuzz/src/bin/msg_tx_add_input_target.rs -./fuzz/src/bin/msg_tx_add_output_target.rs -./fuzz/src/bin/msg_tx_complete_target.rs -./fuzz/src/bin/msg_tx_init_rbf_target.rs -./fuzz/src/bin/msg_tx_remove_input_target.rs -./fuzz/src/bin/msg_tx_remove_output_target.rs -./fuzz/src/bin/msg_tx_signatures_target.rs -./fuzz/src/bin/msg_update_add_htlc_target.rs -./fuzz/src/bin/msg_update_fail_htlc_target.rs -./fuzz/src/bin/msg_update_fail_malformed_htlc_target.rs -./fuzz/src/bin/msg_update_fee_target.rs -./fuzz/src/bin/msg_update_fulfill_htlc_target.rs -./fuzz/src/bin/offer_deser_target.rs -./fuzz/src/bin/onion_hop_data_target.rs -./fuzz/src/bin/onion_message_target.rs -./fuzz/src/bin/peer_crypt_target.rs -./fuzz/src/bin/process_network_graph_target.rs -./fuzz/src/bin/refund_deser_target.rs -./fuzz/src/bin/router_target.rs -./fuzz/src/bin/zbase32_target.rs ./fuzz/src/chanmon_consistency.rs -./fuzz/src/chanmon_deser.rs -./fuzz/src/fromstr_to_netaddress.rs ./fuzz/src/full_stack.rs -./fuzz/src/indexedmap.rs -./fuzz/src/invoice_deser.rs -./fuzz/src/invoice_request_deser.rs ./fuzz/src/lib.rs -./fuzz/src/msg_targets/mod.rs -./fuzz/src/msg_targets/msg_accept_channel.rs -./fuzz/src/msg_targets/msg_accept_channel_v2.rs -./fuzz/src/msg_targets/msg_announcement_signatures.rs -./fuzz/src/msg_targets/msg_channel_announcement.rs -./fuzz/src/msg_targets/msg_channel_details.rs -./fuzz/src/msg_targets/msg_channel_ready.rs -./fuzz/src/msg_targets/msg_channel_reestablish.rs -./fuzz/src/msg_targets/msg_channel_update.rs -./fuzz/src/msg_targets/msg_closing_signed.rs -./fuzz/src/msg_targets/msg_commitment_signed.rs -./fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs -./fuzz/src/msg_targets/msg_error_message.rs -./fuzz/src/msg_targets/msg_funding_created.rs -./fuzz/src/msg_targets/msg_funding_signed.rs -./fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs -./fuzz/src/msg_targets/msg_init.rs -./fuzz/src/msg_targets/msg_node_announcement.rs -./fuzz/src/msg_targets/msg_open_channel.rs -./fuzz/src/msg_targets/msg_open_channel_v2.rs -./fuzz/src/msg_targets/msg_ping.rs -./fuzz/src/msg_targets/msg_pong.rs -./fuzz/src/msg_targets/msg_query_channel_range.rs -./fuzz/src/msg_targets/msg_query_short_channel_ids.rs -./fuzz/src/msg_targets/msg_reply_channel_range.rs -./fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs -./fuzz/src/msg_targets/msg_revoke_and_ack.rs -./fuzz/src/msg_targets/msg_shutdown.rs -./fuzz/src/msg_targets/msg_splice.rs -./fuzz/src/msg_targets/msg_splice_ack.rs -./fuzz/src/msg_targets/msg_splice_locked.rs -./fuzz/src/msg_targets/msg_stfu.rs -./fuzz/src/msg_targets/msg_tx_abort.rs -./fuzz/src/msg_targets/msg_tx_ack_rbf.rs -./fuzz/src/msg_targets/msg_tx_add_input.rs -./fuzz/src/msg_targets/msg_tx_add_output.rs -./fuzz/src/msg_targets/msg_tx_complete.rs -./fuzz/src/msg_targets/msg_tx_init_rbf.rs -./fuzz/src/msg_targets/msg_tx_remove_input.rs -./fuzz/src/msg_targets/msg_tx_remove_output.rs -./fuzz/src/msg_targets/msg_tx_signatures.rs -./fuzz/src/msg_targets/msg_update_add_htlc.rs -./fuzz/src/msg_targets/msg_update_fail_htlc.rs -./fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs -./fuzz/src/msg_targets/msg_update_fee.rs -./fuzz/src/msg_targets/msg_update_fulfill_htlc.rs -./fuzz/src/msg_targets/msg_warning_message.rs -./fuzz/src/msg_targets/utils.rs -./fuzz/src/offer_deser.rs -./fuzz/src/onion_hop_data.rs -./fuzz/src/onion_message.rs -./fuzz/src/peer_crypt.rs -./fuzz/src/process_network_graph.rs -./fuzz/src/refund_deser.rs -./fuzz/src/router.rs -./fuzz/src/utils/mod.rs -./fuzz/src/utils/test_logger.rs -./fuzz/src/utils/test_persister.rs -./fuzz/src/zbase32.rs ./lightning-background-processor/src/lib.rs ./lightning-block-sync/src/convert.rs ./lightning-block-sync/src/gossip.rs