@@ -155,22 +155,36 @@ impl CustomOnionMessageHandler for TestCustomMessageHandler {
155
155
}
156
156
157
157
fn create_nodes ( num_messengers : u8 ) -> Vec < MessengerNode > {
158
- let secrets = ( 1 ..=num_messengers)
158
+ let cfgs = ( 1 ..=num_messengers)
159
159
. into_iter ( )
160
- . map ( |i| SecretKey :: from_slice ( & [ i ; 32 ] ) . unwrap ( ) )
160
+ . map ( |_| MessengerCfg :: new ( ) )
161
161
. collect ( ) ;
162
- create_nodes_using_secrets ( secrets )
162
+ create_nodes_using_cfgs ( cfgs )
163
163
}
164
164
165
- fn create_nodes_using_secrets ( secrets : Vec < SecretKey > ) -> Vec < MessengerNode > {
165
+ struct MessengerCfg {
166
+ secret_override : Option < SecretKey > ,
167
+ }
168
+ impl MessengerCfg {
169
+ fn new ( ) -> Self {
170
+ Self { secret_override : None }
171
+ }
172
+ fn with_node_secret ( mut self , secret : SecretKey ) -> Self {
173
+ self . secret_override = Some ( secret) ;
174
+ self
175
+ }
176
+ }
177
+
178
+ fn create_nodes_using_cfgs ( cfgs : Vec < MessengerCfg > ) -> Vec < MessengerNode > {
166
179
let gossip_logger = Arc :: new ( test_utils:: TestLogger :: with_id ( "gossip" . to_string ( ) ) ) ;
167
180
let network_graph = Arc :: new ( NetworkGraph :: new ( Network :: Testnet , gossip_logger. clone ( ) ) ) ;
168
181
let gossip_sync = Arc :: new (
169
182
P2PGossipSync :: new ( network_graph. clone ( ) , None , gossip_logger)
170
183
) ;
171
184
172
185
let mut nodes = Vec :: new ( ) ;
173
- for ( i, secret_key) in secrets. into_iter ( ) . enumerate ( ) {
186
+ for ( i, cfg) in cfgs. into_iter ( ) . enumerate ( ) {
187
+ let secret_key = cfg. secret_override . unwrap_or ( SecretKey :: from_slice ( & [ ( i + 1 ) as u8 ; 32 ] ) . unwrap ( ) ) ;
174
188
let logger = Arc :: new ( test_utils:: TestLogger :: with_id ( format ! ( "node {}" , i) ) ) ;
175
189
let seed = [ i as u8 ; 32 ] ;
176
190
let entropy_source = Arc :: new ( test_utils:: TestKeysInterface :: new ( & seed, Network :: Testnet ) ) ;
@@ -541,16 +555,17 @@ fn drops_buffered_messages_waiting_for_peer_connection() {
541
555
542
556
#[ test]
543
557
fn spec_test_vector ( ) {
544
- let secret_keys = [
558
+ let node_cfgs = [
545
559
"4141414141414141414141414141414141414141414141414141414141414141" , // Alice
546
560
"4242424242424242424242424242424242424242424242424242424242424242" , // Bob
547
561
"4343434343434343434343434343434343434343434343434343434343434343" , // Carol
548
562
"4444444444444444444444444444444444444444444444444444444444444444" , // Dave
549
563
]
550
564
. iter ( )
551
- . map ( |secret| SecretKey :: from_slice ( & <Vec < u8 > >:: from_hex ( secret) . unwrap ( ) ) . unwrap ( ) )
565
+ . map ( |secret_hex| SecretKey :: from_slice ( & <Vec < u8 > >:: from_hex ( secret_hex) . unwrap ( ) ) . unwrap ( ) )
566
+ . map ( |secret| MessengerCfg :: new ( ) . with_node_secret ( secret) )
552
567
. collect ( ) ;
553
- let nodes = create_nodes_using_secrets ( secret_keys ) ;
568
+ let nodes = create_nodes_using_cfgs ( node_cfgs ) ;
554
569
555
570
// Hardcode the sender->Alice onion message, because it includes an unknown TLV of type 1, which
556
571
// LDK doesn't support constructing.
0 commit comments