@@ -6,7 +6,8 @@ use chain::transaction::OutPoint;
6
6
use chain:: keysinterface:: KeysInterface ;
7
7
use ln:: channelmanager:: { ChannelManager , ChannelManagerReadArgs , RAACommitmentOrder , PaymentPreimage , PaymentHash , PaymentSecret , PaymentSendFailure } ;
8
8
use ln:: channelmonitor:: { ChannelMonitor , ManyChannelMonitor } ;
9
- use routing:: router:: { Route , Router , RouterReadArgs } ;
9
+ use routing:: router:: { Route , get_route} ;
10
+ use routing:: network_graph:: { NetGraphMsgHandler , NetGraphMsgHandlerReadArgs } ;
10
11
use ln:: features:: InitFeatures ;
11
12
use ln:: msgs;
12
13
use ln:: msgs:: { ChannelMessageHandler , RoutingMessageHandler } ;
@@ -82,7 +83,8 @@ pub struct Node<'a, 'b: 'a, 'c: 'b> {
82
83
pub chan_monitor : & ' b test_utils:: TestChannelMonitor < ' c > ,
83
84
pub keys_manager : & ' b test_utils:: TestKeysInterface ,
84
85
pub node : & ' a ChannelManager < EnforcingChannelKeys , & ' b TestChannelMonitor < ' c > , & ' c test_utils:: TestBroadcaster , & ' b test_utils:: TestKeysInterface , & ' c test_utils:: TestFeeEstimator > ,
85
- pub router : Router ,
86
+ pub net_graph_msg_handler : NetGraphMsgHandler ,
87
+ pub our_node_id : PublicKey ,
86
88
pub node_seed : [ u8 ; 32 ] ,
87
89
pub network_payment_count : Rc < RefCell < u8 > > ,
88
90
pub network_chan_count : Rc < RefCell < u32 > > ,
@@ -100,15 +102,15 @@ impl<'a, 'b, 'c> Drop for Node<'a, 'b, 'c> {
100
102
// Check that if we serialize the Router, we can deserialize it again.
101
103
{
102
104
let mut w = test_utils:: TestVecWriter ( Vec :: new ( ) ) ;
103
- self . router . write ( & mut w) . unwrap ( ) ;
104
- let deserialized_router = Router :: read ( & mut :: std:: io:: Cursor :: new ( & w. 0 ) , RouterReadArgs {
105
+ self . net_graph_msg_handler . write ( & mut w) . unwrap ( ) ;
106
+ let net_graph_msg_handler = NetGraphMsgHandler :: read ( & mut :: std:: io:: Cursor :: new ( & w. 0 ) , NetGraphMsgHandlerReadArgs {
105
107
chain_monitor : Arc :: clone ( & self . chain_monitor ) as Arc < chaininterface:: ChainWatchInterface > ,
106
108
logger : Arc :: clone ( & self . logger ) as Arc < Logger >
107
109
} ) . unwrap ( ) ;
108
110
let mut chan_progress = 0 ;
109
111
loop {
110
- let orig_announcements = self . router . get_next_channel_announcements ( chan_progress, 255 ) ;
111
- let deserialized_announcements = deserialized_router . get_next_channel_announcements ( chan_progress, 255 ) ;
112
+ let orig_announcements = self . net_graph_msg_handler . get_next_channel_announcements ( chan_progress, 255 ) ;
113
+ let deserialized_announcements = net_graph_msg_handler . get_next_channel_announcements ( chan_progress, 255 ) ;
112
114
assert ! ( orig_announcements == deserialized_announcements) ;
113
115
chan_progress = match orig_announcements. last ( ) {
114
116
Some ( announcement) => announcement. 0 . contents . short_channel_id + 1 ,
@@ -117,8 +119,8 @@ impl<'a, 'b, 'c> Drop for Node<'a, 'b, 'c> {
117
119
}
118
120
let mut node_progress = None ;
119
121
loop {
120
- let orig_announcements = self . router . get_next_node_announcements ( node_progress. as_ref ( ) , 255 ) ;
121
- let deserialized_announcements = deserialized_router . get_next_node_announcements ( node_progress. as_ref ( ) , 255 ) ;
122
+ let orig_announcements = self . net_graph_msg_handler . get_next_node_announcements ( node_progress. as_ref ( ) , 255 ) ;
123
+ let deserialized_announcements = net_graph_msg_handler . get_next_node_announcements ( node_progress. as_ref ( ) , 255 ) ;
122
124
assert ! ( orig_announcements == deserialized_announcements) ;
123
125
node_progress = match orig_announcements. last ( ) {
124
126
Some ( announcement) => Some ( announcement. contents . node_id ) ,
@@ -461,11 +463,11 @@ pub fn create_announced_chan_between_nodes_with_value<'a, 'b, 'c, 'd>(nodes: &'a
461
463
} ;
462
464
463
465
for node in nodes {
464
- assert ! ( node. router . handle_channel_announcement( & chan_announcement. 0 ) . unwrap( ) ) ;
465
- node. router . handle_channel_update ( & chan_announcement. 1 ) . unwrap ( ) ;
466
- node. router . handle_channel_update ( & chan_announcement. 2 ) . unwrap ( ) ;
467
- node. router . handle_node_announcement ( & a_node_announcement) . unwrap ( ) ;
468
- node. router . handle_node_announcement ( & b_node_announcement) . unwrap ( ) ;
466
+ assert ! ( node. net_graph_msg_handler . handle_channel_announcement( & chan_announcement. 0 ) . unwrap( ) ) ;
467
+ node. net_graph_msg_handler . handle_channel_update ( & chan_announcement. 1 ) . unwrap ( ) ;
468
+ node. net_graph_msg_handler . handle_channel_update ( & chan_announcement. 2 ) . unwrap ( ) ;
469
+ node. net_graph_msg_handler . handle_node_announcement ( & a_node_announcement) . unwrap ( ) ;
470
+ node. net_graph_msg_handler . handle_node_announcement ( & b_node_announcement) . unwrap ( ) ;
469
471
}
470
472
( chan_announcement. 1 , chan_announcement. 2 , chan_announcement. 3 , chan_announcement. 4 )
471
473
}
@@ -949,7 +951,9 @@ pub fn claim_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route:
949
951
pub const TEST_FINAL_CLTV : u32 = 32 ;
950
952
951
953
pub fn route_payment < ' a , ' b , ' c > ( origin_node : & Node < ' a , ' b , ' c > , expected_route : & [ & Node < ' a , ' b , ' c > ] , recv_value : u64 ) -> ( PaymentPreimage , PaymentHash ) {
952
- let route = origin_node. router . get_route ( & expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , None , & Vec :: new ( ) , recv_value, TEST_FINAL_CLTV ) . unwrap ( ) ;
954
+ let net_graph_msg_handler = & origin_node. net_graph_msg_handler ;
955
+ let logger = Arc :: new ( test_utils:: TestLogger :: new ( ) ) ;
956
+ let route = get_route ( & origin_node. our_node_id , net_graph_msg_handler, & expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , None , & Vec :: new ( ) , recv_value, TEST_FINAL_CLTV , logger. clone ( ) ) . unwrap ( ) ;
953
957
assert_eq ! ( route. paths. len( ) , 1 ) ;
954
958
assert_eq ! ( route. paths[ 0 ] . len( ) , expected_route. len( ) ) ;
955
959
for ( node, hop) in expected_route. iter ( ) . zip ( route. paths [ 0 ] . iter ( ) ) {
@@ -960,7 +964,9 @@ pub fn route_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route:
960
964
}
961
965
962
966
pub fn route_over_limit < ' a , ' b , ' c > ( origin_node : & Node < ' a , ' b , ' c > , expected_route : & [ & Node < ' a , ' b , ' c > ] , recv_value : u64 ) {
963
- let route = origin_node. router . get_route ( & expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , None , & Vec :: new ( ) , recv_value, TEST_FINAL_CLTV ) . unwrap ( ) ;
967
+ let logger = Arc :: new ( test_utils:: TestLogger :: new ( ) ) ;
968
+ let net_graph_msg_handler = & origin_node. net_graph_msg_handler ;
969
+ let route = get_route ( & origin_node. our_node_id , net_graph_msg_handler, & expected_route. last ( ) . unwrap ( ) . node . get_our_node_id ( ) , None , & Vec :: new ( ) , recv_value, TEST_FINAL_CLTV , logger. clone ( ) ) . unwrap ( ) ;
964
970
assert_eq ! ( route. paths. len( ) , 1 ) ;
965
971
assert_eq ! ( route. paths[ 0 ] . len( ) , expected_route. len( ) ) ;
966
972
for ( node, hop) in expected_route. iter ( ) . zip ( route. paths [ 0 ] . iter ( ) ) {
@@ -1102,12 +1108,13 @@ pub fn create_network<'a, 'b: 'a, 'c: 'b>(node_count: usize, cfgs: &'b Vec<NodeC
1102
1108
let block_notifier = chaininterface:: BlockNotifier :: new ( cfgs[ i] . chain_monitor . clone ( ) ) ;
1103
1109
block_notifier. register_listener ( & cfgs[ i] . chan_monitor . simple_monitor as & chaininterface:: ChainListener ) ;
1104
1110
block_notifier. register_listener ( & chan_mgrs[ i] as & chaininterface:: ChainListener ) ;
1105
- let router = Router :: new ( PublicKey :: from_secret_key ( & secp_ctx , & cfgs [ i ] . keys_manager . get_node_secret ( ) ) , cfgs[ i] . chain_monitor . clone ( ) , cfgs[ i] . logger . clone ( ) as Arc < Logger > ) ;
1111
+ let net_graph_msg_handler = NetGraphMsgHandler :: new ( cfgs[ i] . chain_monitor . clone ( ) , cfgs[ i] . logger . clone ( ) as Arc < Logger > ) ;
1106
1112
nodes. push ( Node { chain_monitor : cfgs[ i] . chain_monitor . clone ( ) , block_notifier,
1107
1113
tx_broadcaster : cfgs[ i] . tx_broadcaster , chan_monitor : & cfgs[ i] . chan_monitor ,
1108
- keys_manager : & cfgs[ i] . keys_manager , node : & chan_mgrs[ i] , router ,
1114
+ keys_manager : & cfgs[ i] . keys_manager , node : & chan_mgrs[ i] , net_graph_msg_handler ,
1109
1115
node_seed : cfgs[ i] . node_seed , network_chan_count : chan_count. clone ( ) ,
1110
1116
network_payment_count : payment_count. clone ( ) , logger : cfgs[ i] . logger . clone ( ) ,
1117
+ our_node_id : PublicKey :: from_secret_key ( & secp_ctx, & cfgs[ i] . keys_manager . get_node_secret ( ) ) ,
1111
1118
} )
1112
1119
}
1113
1120
@@ -1237,8 +1244,8 @@ pub fn get_announce_close_broadcast_events<'a, 'b, 'c>(nodes: &Vec<Node<'a, 'b,
1237
1244
} ;
1238
1245
1239
1246
for node in nodes {
1240
- node. router . handle_channel_update ( & as_update) . unwrap ( ) ;
1241
- node. router . handle_channel_update ( & bs_update) . unwrap ( ) ;
1247
+ node. net_graph_msg_handler . handle_channel_update ( & as_update) . unwrap ( ) ;
1248
+ node. net_graph_msg_handler . handle_channel_update ( & bs_update) . unwrap ( ) ;
1242
1249
}
1243
1250
}
1244
1251
0 commit comments