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
9- use lightning:: blinded_path:: { BlindedPath , EmptyNodeIdLookUp } ;
109use lightning:: blinded_path:: message:: ForwardNode ;
10+ use lightning:: blinded_path:: { BlindedPath , EmptyNodeIdLookUp } ;
1111use lightning:: ln:: features:: InitFeatures ;
1212use lightning:: ln:: msgs:: { self , DecodeError , OnionMessageHandler } ;
1313use lightning:: ln:: script:: ShutdownScript ;
1414use lightning:: offers:: invoice:: UnsignedBolt12Invoice ;
1515use lightning:: offers:: invoice_request:: UnsignedInvoiceRequest ;
16- use lightning:: sign:: { Recipient , KeyMaterial , EntropySource , NodeSigner , SignerProvider } ;
17- use lightning:: util:: test_channel_signer:: TestChannelSigner ;
18- use lightning:: util:: logger:: Logger ;
19- use lightning:: util:: ser:: { Readable , Writeable , Writer } ;
20- use lightning:: onion_message:: messenger:: { CustomOnionMessageHandler , Destination , MessageRouter , OnionMessagePath , OnionMessenger , PendingOnionMessage , Responder , ResponseInstruction } ;
16+ use lightning:: onion_message:: messenger:: {
17+ CustomOnionMessageHandler , Destination , MessageRouter , OnionMessagePath , OnionMessenger ,
18+ PendingOnionMessage , Responder , ResponseInstruction ,
19+ } ;
2120use lightning:: onion_message:: offers:: { OffersMessage , OffersMessageHandler } ;
2221use lightning:: onion_message:: packet:: OnionMessageContents ;
22+ use lightning:: sign:: { EntropySource , KeyMaterial , NodeSigner , Recipient , SignerProvider } ;
23+ use lightning:: util:: logger:: Logger ;
24+ use lightning:: util:: ser:: { Readable , Writeable , Writer } ;
25+ use lightning:: util:: test_channel_signer:: TestChannelSigner ;
2326
2427use crate :: utils:: test_logger;
2528
@@ -33,17 +36,19 @@ pub fn do_test<L: Logger>(data: &[u8], logger: &L) {
3336 let mut secret_bytes = [ 1 ; 32 ] ;
3437 secret_bytes[ 31 ] = 2 ;
3538 let secret = SecretKey :: from_slice ( & secret_bytes) . unwrap ( ) ;
36- let keys_manager = KeyProvider {
37- node_secret : secret,
38- counter : AtomicU64 :: new ( 0 ) ,
39- } ;
39+ let keys_manager = KeyProvider { node_secret : secret, counter : AtomicU64 :: new ( 0 ) } ;
4040 let node_id_lookup = EmptyNodeIdLookUp { } ;
4141 let message_router = TestMessageRouter { } ;
4242 let offers_msg_handler = TestOffersMessageHandler { } ;
4343 let custom_msg_handler = TestCustomMessageHandler { } ;
4444 let onion_messenger = OnionMessenger :: new (
45- & keys_manager, & keys_manager, logger, & node_id_lookup, & message_router,
46- & offers_msg_handler, & custom_msg_handler
45+ & keys_manager,
46+ & keys_manager,
47+ logger,
48+ & node_id_lookup,
49+ & message_router,
50+ & offers_msg_handler,
51+ & custom_msg_handler,
4752 ) ;
4853
4954 let peer_node_id = {
@@ -79,13 +84,9 @@ struct TestMessageRouter {}
7984
8085impl MessageRouter for TestMessageRouter {
8186 fn find_path (
82- & self , _sender : PublicKey , _peers : Vec < PublicKey > , destination : Destination
87+ & self , _sender : PublicKey , _peers : Vec < PublicKey > , destination : Destination ,
8388 ) -> Result < OnionMessagePath , ( ) > {
84- Ok ( OnionMessagePath {
85- intermediate_nodes : vec ! [ ] ,
86- destination,
87- first_node_addresses : None ,
88- } )
89+ Ok ( OnionMessagePath { intermediate_nodes : vec ! [ ] , destination, first_node_addresses : None } )
8990 }
9091
9192 fn create_blinded_paths < T : secp256k1:: Signing + secp256k1:: Verification > (
@@ -98,7 +99,9 @@ impl MessageRouter for TestMessageRouter {
9899struct TestOffersMessageHandler { }
99100
100101impl OffersMessageHandler for TestOffersMessageHandler {
101- fn handle_message ( & self , _message : OffersMessage , _responder : Option < Responder > ) -> ResponseInstruction < OffersMessage > {
102+ fn handle_message (
103+ & self , _message : OffersMessage , _responder : Option < Responder > ,
104+ ) -> ResponseInstruction < OffersMessage > {
102105 ResponseInstruction :: NoResponse
103106 }
104107}
@@ -128,16 +131,20 @@ struct TestCustomMessageHandler {}
128131
129132impl CustomOnionMessageHandler for TestCustomMessageHandler {
130133 type CustomMessage = TestCustomMessage ;
131- fn handle_custom_message ( & self , message : Self :: CustomMessage , responder : Option < Responder > ) -> ResponseInstruction < Self :: CustomMessage > {
134+ fn handle_custom_message (
135+ & self , message : Self :: CustomMessage , responder : Option < Responder > ,
136+ ) -> ResponseInstruction < Self :: CustomMessage > {
132137 match responder {
133138 Some ( responder) => responder. respond ( message) ,
134- None => ResponseInstruction :: NoResponse
139+ None => ResponseInstruction :: NoResponse ,
135140 }
136141 }
137- fn read_custom_message < R : io:: Read > ( & self , _message_type : u64 , buffer : & mut R ) -> Result < Option < Self :: CustomMessage > , msgs:: DecodeError > {
142+ fn read_custom_message < R : io:: Read > (
143+ & self , _message_type : u64 , buffer : & mut R ,
144+ ) -> Result < Option < Self :: CustomMessage > , msgs:: DecodeError > {
138145 let mut buf = Vec :: new ( ) ;
139146 buffer. read_to_end ( & mut buf) ?;
140- return Ok ( Some ( TestCustomMessage { } ) )
147+ return Ok ( Some ( TestCustomMessage { } ) ) ;
141148 }
142149 fn release_pending_custom_messages ( & self ) -> Vec < PendingOnionMessage < Self :: CustomMessage > > {
143150 vec ! [ ]
@@ -159,39 +166,48 @@ struct KeyProvider {
159166impl EntropySource for KeyProvider {
160167 fn get_secure_random_bytes ( & self ) -> [ u8 ; 32 ] {
161168 let ctr = self . counter . fetch_add ( 1 , Ordering :: Relaxed ) ;
162- [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
163- ( 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 ]
169+ #[ rustfmt:: skip]
170+ 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 ,
171+ ( ctr >> 8 * 7 ) as u8 , ( ctr >> 8 * 6 ) as u8 , ( ctr >> 8 * 5 ) as u8 , ( ctr >> 8 * 4 ) as u8 ,
172+ ( ctr >> 8 * 3 ) as u8 , ( ctr >> 8 * 2 ) as u8 , ( ctr >> 8 * 1 ) as u8 , 14 , ( ctr >> 8 * 0 ) as u8 ] ;
173+ random_bytes
164174 }
165175}
166176
167177impl NodeSigner for KeyProvider {
168178 fn get_node_id ( & self , recipient : Recipient ) -> Result < PublicKey , ( ) > {
169179 let node_secret = match recipient {
170180 Recipient :: Node => Ok ( & self . node_secret ) ,
171- Recipient :: PhantomNode => Err ( ( ) )
181+ Recipient :: PhantomNode => Err ( ( ) ) ,
172182 } ?;
173183 Ok ( PublicKey :: from_secret_key ( & Secp256k1 :: signing_only ( ) , node_secret) )
174184 }
175185
176- fn ecdh ( & self , recipient : Recipient , other_key : & PublicKey , tweak : Option < & Scalar > ) -> Result < SharedSecret , ( ) > {
186+ fn ecdh (
187+ & self , recipient : Recipient , other_key : & PublicKey , tweak : Option < & Scalar > ,
188+ ) -> Result < SharedSecret , ( ) > {
177189 let mut node_secret = match recipient {
178190 Recipient :: Node => Ok ( self . node_secret . clone ( ) ) ,
179- Recipient :: PhantomNode => Err ( ( ) )
191+ Recipient :: PhantomNode => Err ( ( ) ) ,
180192 } ?;
181193 if let Some ( tweak) = tweak {
182194 node_secret = node_secret. mul_tweak ( tweak) . map_err ( |_| ( ) ) ?;
183195 }
184196 Ok ( SharedSecret :: new ( other_key, & node_secret) )
185197 }
186198
187- fn get_inbound_payment_key_material ( & self ) -> KeyMaterial { unreachable ! ( ) }
199+ fn get_inbound_payment_key_material ( & self ) -> KeyMaterial {
200+ unreachable ! ( )
201+ }
188202
189- fn sign_invoice ( & self , _hrp_bytes : & [ u8 ] , _invoice_data : & [ u5 ] , _recipient : Recipient ) -> Result < RecoverableSignature , ( ) > {
203+ fn sign_invoice (
204+ & self , _hrp_bytes : & [ u8 ] , _invoice_data : & [ u5 ] , _recipient : Recipient ,
205+ ) -> Result < RecoverableSignature , ( ) > {
190206 unreachable ! ( )
191207 }
192208
193209 fn sign_bolt12_invoice_request (
194- & self , _invoice_request : & UnsignedInvoiceRequest
210+ & self , _invoice_request : & UnsignedInvoiceRequest ,
195211 ) -> Result < schnorr:: Signature , ( ) > {
196212 unreachable ! ( )
197213 }
@@ -202,7 +218,9 @@ impl NodeSigner for KeyProvider {
202218 unreachable ! ( )
203219 }
204220
205- fn sign_gossip_message ( & self , _msg : lightning:: ln:: msgs:: UnsignedGossipMessage ) -> Result < bitcoin:: secp256k1:: ecdsa:: Signature , ( ) > {
221+ fn sign_gossip_message (
222+ & self , _msg : lightning:: ln:: msgs:: UnsignedGossipMessage ,
223+ ) -> Result < bitcoin:: secp256k1:: ecdsa:: Signature , ( ) > {
206224 unreachable ! ( )
207225 }
208226}
@@ -212,17 +230,29 @@ impl SignerProvider for KeyProvider {
212230 #[ cfg( taproot) ]
213231 type TaprootSigner = TestChannelSigner ;
214232
215- fn generate_channel_keys_id ( & self , _inbound : bool , _channel_value_satoshis : u64 , _user_channel_id : u128 ) -> [ u8 ; 32 ] { unreachable ! ( ) }
233+ fn generate_channel_keys_id (
234+ & self , _inbound : bool , _channel_value_satoshis : u64 , _user_channel_id : u128 ,
235+ ) -> [ u8 ; 32 ] {
236+ unreachable ! ( )
237+ }
216238
217- fn derive_channel_signer ( & self , _channel_value_satoshis : u64 , _channel_keys_id : [ u8 ; 32 ] ) -> Self :: EcdsaSigner {
239+ fn derive_channel_signer (
240+ & self , _channel_value_satoshis : u64 , _channel_keys_id : [ u8 ; 32 ] ,
241+ ) -> Self :: EcdsaSigner {
218242 unreachable ! ( )
219243 }
220244
221- fn read_chan_signer ( & self , _data : & [ u8 ] ) -> Result < TestChannelSigner , DecodeError > { unreachable ! ( ) }
245+ fn read_chan_signer ( & self , _data : & [ u8 ] ) -> Result < TestChannelSigner , DecodeError > {
246+ unreachable ! ( )
247+ }
222248
223- fn get_destination_script ( & self , _channel_keys_id : [ u8 ; 32 ] ) -> Result < ScriptBuf , ( ) > { unreachable ! ( ) }
249+ fn get_destination_script ( & self , _channel_keys_id : [ u8 ; 32 ] ) -> Result < ScriptBuf , ( ) > {
250+ unreachable ! ( )
251+ }
224252
225- fn get_shutdown_scriptpubkey ( & self ) -> Result < ShutdownScript , ( ) > { unreachable ! ( ) }
253+ fn get_shutdown_scriptpubkey ( & self ) -> Result < ShutdownScript , ( ) > {
254+ unreachable ! ( )
255+ }
226256}
227257
228258#[ cfg( test) ]
@@ -238,8 +268,17 @@ mod tests {
238268 }
239269 impl Logger for TrackingLogger {
240270 fn log ( & self , record : Record ) {
241- * self . lines . lock ( ) . unwrap ( ) . entry ( ( record. module_path . to_string ( ) , format ! ( "{}" , record. args) ) ) . or_insert ( 0 ) += 1 ;
242- println ! ( "{:<5} [{} : {}, {}] {}" , record. level. to_string( ) , record. module_path, record. file, record. line, record. args) ;
271+ let mut lines_lock = self . lines . lock ( ) . unwrap ( ) ;
272+ let key = ( record. module_path . to_string ( ) , format ! ( "{}" , record. args) ) ;
273+ * lines_lock. entry ( key) . or_insert ( 0 ) += 1 ;
274+ println ! (
275+ "{:<5} [{} : {}, {}] {}" ,
276+ record. level. to_string( ) ,
277+ record. module_path,
278+ record. file,
279+ record. line,
280+ record. args
281+ ) ;
243282 }
244283 }
245284
0 commit comments