@@ -21,10 +21,10 @@ use common::{
2121 expect_channel_pending_event, expect_channel_ready_event, expect_channel_ready_events,
2222 expect_event, expect_payment_claimable_event, expect_payment_received_event,
2323 expect_payment_successful_event, expect_splice_pending_event, generate_blocks_and_wait,
24- generate_listening_addresses , open_channel, open_channel_push_amt, open_channel_with_all,
25- premine_and_distribute_funds , premine_blocks, prepare_rbf, random_chain_source, random_config,
26- setup_bitcoind_and_electrsd , setup_builder, setup_node, setup_two_nodes, splice_in_with_all,
27- wait_for_tx , TestChainSource , TestStoreType , TestSyncStore ,
24+ open_channel, open_channel_push_amt, open_channel_with_all, premine_and_distribute_funds ,
25+ premine_blocks, prepare_rbf, random_chain_source, random_config, setup_bitcoind_and_electrsd ,
26+ setup_builder, setup_node, setup_two_nodes, splice_in_with_all, wait_for_tx , TestChainSource ,
27+ TestStoreType , TestSyncStore ,
2828} ;
2929use electrsd:: corepc_node:: Node as BitcoinD ;
3030use electrsd:: ElectrsD ;
@@ -37,6 +37,7 @@ use ldk_node::payment::{
3737} ;
3838use ldk_node:: { Builder , Event , NodeError } ;
3939use lightning:: ln:: channelmanager:: PaymentId ;
40+ use lightning:: ln:: msgs:: SocketAddress ;
4041use lightning:: routing:: gossip:: { NodeAlias , NodeId } ;
4142use lightning:: routing:: router:: RouteParametersConfig ;
4243use lightning_invoice:: { Bolt11InvoiceDescription , Description } ;
@@ -1424,29 +1425,28 @@ async fn test_node_announcement_propagation() {
14241425 let ( bitcoind, electrsd) = setup_bitcoind_and_electrsd ( ) ;
14251426 let chain_source = random_chain_source ( & bitcoind, & electrsd) ;
14261427
1427- // Node A will use both listening and announcement addresses
14281428 let mut config_a = random_config ( true ) ;
14291429 let node_a_alias_string = "ldk-node-a" . to_string ( ) ;
14301430 let mut node_a_alias_bytes = [ 0u8 ; 32 ] ;
14311431 node_a_alias_bytes[ ..node_a_alias_string. as_bytes ( ) . len ( ) ]
14321432 . copy_from_slice ( node_a_alias_string. as_bytes ( ) ) ;
14331433 let node_a_node_alias = Some ( NodeAlias ( node_a_alias_bytes) ) ;
1434- let node_a_announcement_addresses = generate_listening_addresses ( ) ;
14351434 config_a. node_config . node_alias = node_a_node_alias. clone ( ) ;
1436- config_a. node_config . listening_addresses = Some ( generate_listening_addresses ( ) ) ;
1435+ // Set explicit announcement addresses to verify they take priority over bound addresses.
1436+ let node_a_announcement_addresses = vec ! [
1437+ SocketAddress :: TcpIpV4 { addr: [ 127 , 0 , 0 , 1 ] , port: 10001 } ,
1438+ SocketAddress :: TcpIpV4 { addr: [ 127 , 0 , 0 , 1 ] , port: 10002 } ,
1439+ ] ;
14371440 config_a. node_config . announcement_addresses = Some ( node_a_announcement_addresses. clone ( ) ) ;
14381441
1439- // Node B will only use listening addresses
1442+ // Node B uses default config to verify that bound addresses are announced.
14401443 let mut config_b = random_config ( true ) ;
14411444 let node_b_alias_string = "ldk-node-b" . to_string ( ) ;
14421445 let mut node_b_alias_bytes = [ 0u8 ; 32 ] ;
14431446 node_b_alias_bytes[ ..node_b_alias_string. as_bytes ( ) . len ( ) ]
14441447 . copy_from_slice ( node_b_alias_string. as_bytes ( ) ) ;
14451448 let node_b_node_alias = Some ( NodeAlias ( node_b_alias_bytes) ) ;
1446- let node_b_listening_addresses = generate_listening_addresses ( ) ;
14471449 config_b. node_config . node_alias = node_b_node_alias. clone ( ) ;
1448- config_b. node_config . listening_addresses = Some ( node_b_listening_addresses. clone ( ) ) ;
1449- config_b. node_config . announcement_addresses = None ;
14501450
14511451 let node_a = setup_node ( & chain_source, config_a) ;
14521452 let node_b = setup_node ( & chain_source, config_b) ;
@@ -1505,10 +1505,11 @@ async fn test_node_announcement_propagation() {
15051505 #[ cfg( feature = "uniffi" ) ]
15061506 assert_eq ! ( node_b_announcement_info. alias, node_b_alias_string) ;
15071507
1508+ let node_b_announcement_addresses = node_b. announcement_addresses ( ) . unwrap ( ) ;
15081509 #[ cfg( not( feature = "uniffi" ) ) ]
1509- assert_eq ! ( node_b_announcement_info. addresses( ) , & node_b_listening_addresses ) ;
1510+ assert_eq ! ( node_b_announcement_info. addresses( ) , & node_b_announcement_addresses ) ;
15101511 #[ cfg( feature = "uniffi" ) ]
1511- assert_eq ! ( node_b_announcement_info. addresses, node_b_listening_addresses ) ;
1512+ assert_eq ! ( node_b_announcement_info. addresses, node_b_announcement_addresses ) ;
15121513}
15131514
15141515#[ tokio:: test( flavor = "multi_thread" , worker_threads = 1 ) ]
0 commit comments