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