11// Imports that need to be added manually
22use bech32:: u5;
33use bitcoin:: blockdata:: script:: ScriptBuf ;
4- use bitcoin:: secp256k1:: { PublicKey , Scalar , Secp256k1 , SecretKey , self } ;
54use bitcoin:: secp256k1:: ecdh:: SharedSecret ;
65use bitcoin:: secp256k1:: ecdsa:: RecoverableSignature ;
76use bitcoin:: secp256k1:: schnorr;
7+ use bitcoin:: secp256k1:: { self , PublicKey , Scalar , Secp256k1 , SecretKey } ;
88
99use lightning:: blinded_path:: { BlindedPath , EmptyNodeIdLookUp } ;
1010use lightning:: ln:: features:: InitFeatures ;
1111use lightning:: ln:: msgs:: { self , DecodeError , OnionMessageHandler } ;
1212use lightning:: ln:: script:: ShutdownScript ;
1313use lightning:: offers:: invoice:: UnsignedBolt12Invoice ;
1414use lightning:: offers:: invoice_request:: UnsignedInvoiceRequest ;
15- use lightning:: sign:: { Recipient , KeyMaterial , EntropySource , NodeSigner , SignerProvider } ;
16- use lightning:: util:: test_channel_signer:: TestChannelSigner ;
17- use lightning:: util:: logger:: Logger ;
18- use lightning:: util:: ser:: { Readable , Writeable , Writer } ;
19- use lightning:: onion_message:: messenger:: { CustomOnionMessageHandler , Destination , MessageRouter , OnionMessagePath , OnionMessenger , PendingOnionMessage , Responder , ResponseInstruction } ;
15+ use lightning:: onion_message:: messenger:: {
16+ CustomOnionMessageHandler , Destination , MessageRouter , OnionMessagePath , OnionMessenger ,
17+ PendingOnionMessage , Responder , ResponseInstruction ,
18+ } ;
2019use lightning:: onion_message:: offers:: { OffersMessage , OffersMessageHandler } ;
2120use lightning:: onion_message:: packet:: OnionMessageContents ;
21+ use lightning:: sign:: { EntropySource , KeyMaterial , NodeSigner , Recipient , SignerProvider } ;
22+ use lightning:: util:: logger:: Logger ;
23+ use lightning:: util:: ser:: { Readable , Writeable , Writer } ;
24+ use lightning:: util:: test_channel_signer:: TestChannelSigner ;
2225
2326use crate :: utils:: test_logger;
2427
@@ -32,17 +35,19 @@ pub fn do_test<L: Logger>(data: &[u8], logger: &L) {
3235 let mut secret_bytes = [ 1 ; 32 ] ;
3336 secret_bytes[ 31 ] = 2 ;
3437 let secret = SecretKey :: from_slice ( & secret_bytes) . unwrap ( ) ;
35- let keys_manager = KeyProvider {
36- node_secret : secret,
37- counter : AtomicU64 :: new ( 0 ) ,
38- } ;
38+ let keys_manager = KeyProvider { node_secret : secret, counter : AtomicU64 :: new ( 0 ) } ;
3939 let node_id_lookup = EmptyNodeIdLookUp { } ;
4040 let message_router = TestMessageRouter { } ;
4141 let offers_msg_handler = TestOffersMessageHandler { } ;
4242 let custom_msg_handler = TestCustomMessageHandler { } ;
4343 let onion_messenger = OnionMessenger :: new (
44- & keys_manager, & keys_manager, logger, & node_id_lookup, & message_router,
45- & offers_msg_handler, & custom_msg_handler
44+ & keys_manager,
45+ & keys_manager,
46+ logger,
47+ & node_id_lookup,
48+ & message_router,
49+ & offers_msg_handler,
50+ & custom_msg_handler,
4651 ) ;
4752
4853 let peer_node_id = {
@@ -78,13 +83,9 @@ struct TestMessageRouter {}
7883
7984impl MessageRouter for TestMessageRouter {
8085 fn find_path (
81- & self , _sender : PublicKey , _peers : Vec < PublicKey > , destination : Destination
86+ & self , _sender : PublicKey , _peers : Vec < PublicKey > , destination : Destination ,
8287 ) -> Result < OnionMessagePath , ( ) > {
83- Ok ( OnionMessagePath {
84- intermediate_nodes : vec ! [ ] ,
85- destination,
86- first_node_addresses : None ,
87- } )
88+ Ok ( OnionMessagePath { intermediate_nodes : vec ! [ ] , destination, first_node_addresses : None } )
8889 }
8990
9091 fn create_blinded_paths < T : secp256k1:: Signing + secp256k1:: Verification > (
@@ -97,7 +98,9 @@ impl MessageRouter for TestMessageRouter {
9798struct TestOffersMessageHandler { }
9899
99100impl OffersMessageHandler for TestOffersMessageHandler {
100- fn handle_message ( & self , _message : OffersMessage , _responder : Option < Responder > ) -> ResponseInstruction < OffersMessage > {
101+ fn handle_message (
102+ & self , _message : OffersMessage , _responder : Option < Responder > ,
103+ ) -> ResponseInstruction < OffersMessage > {
101104 ResponseInstruction :: NoResponse
102105 }
103106}
@@ -127,16 +130,20 @@ struct TestCustomMessageHandler {}
127130
128131impl CustomOnionMessageHandler for TestCustomMessageHandler {
129132 type CustomMessage = TestCustomMessage ;
130- fn handle_custom_message ( & self , message : Self :: CustomMessage , responder : Option < Responder > ) -> ResponseInstruction < Self :: CustomMessage > {
133+ fn handle_custom_message (
134+ & self , message : Self :: CustomMessage , responder : Option < Responder > ,
135+ ) -> ResponseInstruction < Self :: CustomMessage > {
131136 match responder {
132137 Some ( responder) => responder. respond ( message) ,
133- None => ResponseInstruction :: NoResponse
138+ None => ResponseInstruction :: NoResponse ,
134139 }
135140 }
136- fn read_custom_message < R : io:: Read > ( & self , _message_type : u64 , buffer : & mut R ) -> Result < Option < Self :: CustomMessage > , msgs:: DecodeError > {
141+ fn read_custom_message < R : io:: Read > (
142+ & self , _message_type : u64 , buffer : & mut R ,
143+ ) -> Result < Option < Self :: CustomMessage > , msgs:: DecodeError > {
137144 let mut buf = Vec :: new ( ) ;
138145 buffer. read_to_end ( & mut buf) ?;
139- return Ok ( Some ( TestCustomMessage { } ) )
146+ return Ok ( Some ( TestCustomMessage { } ) ) ;
140147 }
141148 fn release_pending_custom_messages ( & self ) -> Vec < PendingOnionMessage < Self :: CustomMessage > > {
142149 vec ! [ ]
@@ -158,39 +165,48 @@ struct KeyProvider {
158165impl EntropySource for KeyProvider {
159166 fn get_secure_random_bytes ( & self ) -> [ u8 ; 32 ] {
160167 let ctr = self . counter . fetch_add ( 1 , Ordering :: Relaxed ) ;
161- [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
162- ( 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 ]
168+ #[ rustfmt:: skip]
169+ 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 ,
170+ ( ctr >> 8 * 7 ) as u8 , ( ctr >> 8 * 6 ) as u8 , ( ctr >> 8 * 5 ) as u8 , ( ctr >> 8 * 4 ) as u8 ,
171+ ( ctr >> 8 * 3 ) as u8 , ( ctr >> 8 * 2 ) as u8 , ( ctr >> 8 * 1 ) as u8 , 14 , ( ctr >> 8 * 0 ) as u8 ] ;
172+ random_bytes
163173 }
164174}
165175
166176impl NodeSigner for KeyProvider {
167177 fn get_node_id ( & self , recipient : Recipient ) -> Result < PublicKey , ( ) > {
168178 let node_secret = match recipient {
169179 Recipient :: Node => Ok ( & self . node_secret ) ,
170- Recipient :: PhantomNode => Err ( ( ) )
180+ Recipient :: PhantomNode => Err ( ( ) ) ,
171181 } ?;
172182 Ok ( PublicKey :: from_secret_key ( & Secp256k1 :: signing_only ( ) , node_secret) )
173183 }
174184
175- fn ecdh ( & self , recipient : Recipient , other_key : & PublicKey , tweak : Option < & Scalar > ) -> Result < SharedSecret , ( ) > {
185+ fn ecdh (
186+ & self , recipient : Recipient , other_key : & PublicKey , tweak : Option < & Scalar > ,
187+ ) -> Result < SharedSecret , ( ) > {
176188 let mut node_secret = match recipient {
177189 Recipient :: Node => Ok ( self . node_secret . clone ( ) ) ,
178- Recipient :: PhantomNode => Err ( ( ) )
190+ Recipient :: PhantomNode => Err ( ( ) ) ,
179191 } ?;
180192 if let Some ( tweak) = tweak {
181193 node_secret = node_secret. mul_tweak ( tweak) . map_err ( |_| ( ) ) ?;
182194 }
183195 Ok ( SharedSecret :: new ( other_key, & node_secret) )
184196 }
185197
186- fn get_inbound_payment_key_material ( & self ) -> KeyMaterial { unreachable ! ( ) }
198+ fn get_inbound_payment_key_material ( & self ) -> KeyMaterial {
199+ unreachable ! ( )
200+ }
187201
188- fn sign_invoice ( & self , _hrp_bytes : & [ u8 ] , _invoice_data : & [ u5 ] , _recipient : Recipient ) -> Result < RecoverableSignature , ( ) > {
202+ fn sign_invoice (
203+ & self , _hrp_bytes : & [ u8 ] , _invoice_data : & [ u5 ] , _recipient : Recipient ,
204+ ) -> Result < RecoverableSignature , ( ) > {
189205 unreachable ! ( )
190206 }
191207
192208 fn sign_bolt12_invoice_request (
193- & self , _invoice_request : & UnsignedInvoiceRequest
209+ & self , _invoice_request : & UnsignedInvoiceRequest ,
194210 ) -> Result < schnorr:: Signature , ( ) > {
195211 unreachable ! ( )
196212 }
@@ -201,7 +217,9 @@ impl NodeSigner for KeyProvider {
201217 unreachable ! ( )
202218 }
203219
204- fn sign_gossip_message ( & self , _msg : lightning:: ln:: msgs:: UnsignedGossipMessage ) -> Result < bitcoin:: secp256k1:: ecdsa:: Signature , ( ) > {
220+ fn sign_gossip_message (
221+ & self , _msg : lightning:: ln:: msgs:: UnsignedGossipMessage ,
222+ ) -> Result < bitcoin:: secp256k1:: ecdsa:: Signature , ( ) > {
205223 unreachable ! ( )
206224 }
207225}
@@ -211,17 +229,29 @@ impl SignerProvider for KeyProvider {
211229 #[ cfg( taproot) ]
212230 type TaprootSigner = TestChannelSigner ;
213231
214- fn generate_channel_keys_id ( & self , _inbound : bool , _channel_value_satoshis : u64 , _user_channel_id : u128 ) -> [ u8 ; 32 ] { unreachable ! ( ) }
232+ fn generate_channel_keys_id (
233+ & self , _inbound : bool , _channel_value_satoshis : u64 , _user_channel_id : u128 ,
234+ ) -> [ u8 ; 32 ] {
235+ unreachable ! ( )
236+ }
215237
216- fn derive_channel_signer ( & self , _channel_value_satoshis : u64 , _channel_keys_id : [ u8 ; 32 ] ) -> Self :: EcdsaSigner {
238+ fn derive_channel_signer (
239+ & self , _channel_value_satoshis : u64 , _channel_keys_id : [ u8 ; 32 ] ,
240+ ) -> Self :: EcdsaSigner {
217241 unreachable ! ( )
218242 }
219243
220- fn read_chan_signer ( & self , _data : & [ u8 ] ) -> Result < TestChannelSigner , DecodeError > { unreachable ! ( ) }
244+ fn read_chan_signer ( & self , _data : & [ u8 ] ) -> Result < TestChannelSigner , DecodeError > {
245+ unreachable ! ( )
246+ }
221247
222- fn get_destination_script ( & self , _channel_keys_id : [ u8 ; 32 ] ) -> Result < ScriptBuf , ( ) > { unreachable ! ( ) }
248+ fn get_destination_script ( & self , _channel_keys_id : [ u8 ; 32 ] ) -> Result < ScriptBuf , ( ) > {
249+ unreachable ! ( )
250+ }
223251
224- fn get_shutdown_scriptpubkey ( & self ) -> Result < ShutdownScript , ( ) > { unreachable ! ( ) }
252+ fn get_shutdown_scriptpubkey ( & self ) -> Result < ShutdownScript , ( ) > {
253+ unreachable ! ( )
254+ }
225255}
226256
227257#[ cfg( test) ]
@@ -237,8 +267,17 @@ mod tests {
237267 }
238268 impl Logger for TrackingLogger {
239269 fn log ( & self , record : Record ) {
240- * self . lines . lock ( ) . unwrap ( ) . entry ( ( record. module_path . to_string ( ) , format ! ( "{}" , record. args) ) ) . or_insert ( 0 ) += 1 ;
241- println ! ( "{:<5} [{} : {}, {}] {}" , record. level. to_string( ) , record. module_path, record. file, record. line, record. args) ;
270+ let mut lines_lock = self . lines . lock ( ) . unwrap ( ) ;
271+ let key = ( record. module_path . to_string ( ) , format ! ( "{}" , record. args) ) ;
272+ * lines_lock. entry ( key) . or_insert ( 0 ) += 1 ;
273+ println ! (
274+ "{:<5} [{} : {}, {}] {}" ,
275+ record. level. to_string( ) ,
276+ record. module_path,
277+ record. file,
278+ record. line,
279+ record. args
280+ ) ;
242281 }
243282 }
244283
0 commit comments