mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +01:00
Take &NetworkGraph as input in get_route, not a NetGraphMsgHandler
This was just an oversight when route calculation was split up into parts - it makes no sense for get_route to require that we have a full route message handler, only a network graph (which can always be accessed from a NetGraphMsgHandler anyway).
This commit is contained in:
parent
882db714de
commit
bcd65bed7b
6 changed files with 99 additions and 101 deletions
|
@ -400,7 +400,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
|
|||
},
|
||||
4 => {
|
||||
let value = slice_to_be24(get_slice!(3)) as u64;
|
||||
let route = match get_route(&our_id, &net_graph_msg_handler, &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
|
||||
let route = match get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
|
||||
Ok(route) => route,
|
||||
Err(_) => return,
|
||||
};
|
||||
|
@ -417,7 +417,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
|
|||
},
|
||||
15 => {
|
||||
let value = slice_to_be24(get_slice!(3)) as u64;
|
||||
let mut route = match get_route(&our_id, &net_graph_msg_handler, &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
|
||||
let mut route = match get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
|
||||
Ok(route) => route,
|
||||
Err(_) => return,
|
||||
};
|
||||
|
|
|
@ -228,7 +228,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
|
|||
}
|
||||
&last_hops_vec[..]
|
||||
};
|
||||
let _ = get_route(&our_pubkey, &net_graph_msg_handler, &target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)), Arc::clone(&logger));
|
||||
let _ = get_route(&our_pubkey, &net_graph_msg_handler.network_graph.read().unwrap(), &target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)), Arc::clone(&logger));
|
||||
},
|
||||
_ => return,
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ fn test_simple_monitor_permanent_update_fail() {
|
|||
|
||||
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::PermanentFailure);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_1, &None), true, APIError::ChannelUnavailable {..}, {});
|
||||
check_added_monitors!(nodes[0], 2);
|
||||
|
||||
|
@ -71,7 +71,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
|
|||
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_1, &None), false, APIError::MonitorUpdateFailed, {});
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool) {
|
|||
{
|
||||
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::TemporaryFailure);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_2, &None), false, APIError::MonitorUpdateFailed, {});
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -184,7 +184,7 @@ fn do_test_monitor_temporary_update_fail(disconnect_count: usize) {
|
|||
{
|
||||
*nodes[0].chan_monitor.update_ret.lock().unwrap() = Err(ChannelMonitorUpdateErr::TemporaryFailure);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, payment_hash_2, &None), false, APIError::MonitorUpdateFailed, {});
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -515,7 +515,7 @@ fn test_monitor_update_fail_cs() {
|
|||
let (payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -604,7 +604,7 @@ fn test_monitor_update_fail_no_rebroadcast() {
|
|||
let (payment_preimage_1, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -655,7 +655,7 @@ fn test_monitor_update_raa_while_paused() {
|
|||
let (payment_preimage_1, our_payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash_1, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -664,7 +664,7 @@ fn test_monitor_update_raa_while_paused() {
|
|||
let (payment_preimage_2, our_payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, our_payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[1], 1);
|
||||
}
|
||||
|
@ -756,7 +756,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
|
|||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -783,7 +783,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
|
|||
let (_, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_3, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -832,7 +832,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
|
|||
// Try to route another payment backwards from 2 to make sure 1 holds off on responding
|
||||
let (payment_preimage_4, payment_hash_4) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[2].node.send_payment(&route, payment_hash_4, &None).unwrap();
|
||||
check_added_monitors!(nodes[2], 1);
|
||||
|
||||
|
@ -1086,7 +1086,7 @@ fn raa_no_response_awaiting_raa_state() {
|
|||
// generation during RAA while in monitor-update-failed state.
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
|
@ -1140,7 +1140,7 @@ fn raa_no_response_awaiting_raa_state() {
|
|||
// commitment transaction states) whereas here we can explicitly check for it.
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_3, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 0);
|
||||
assert!(nodes[0].node.get_and_clear_pending_msg_events().is_empty());
|
||||
|
@ -1232,7 +1232,7 @@ fn claim_while_disconnected_monitor_update_fail() {
|
|||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1328,7 +1328,7 @@ fn monitor_failed_no_reestablish_response() {
|
|||
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1402,7 +1402,7 @@ fn first_message_on_recv_ordering() {
|
|||
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1427,7 +1427,7 @@ fn first_message_on_recv_ordering() {
|
|||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1507,7 +1507,7 @@ fn test_monitor_update_fail_claim() {
|
|||
let (_, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[2].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[2], 1);
|
||||
}
|
||||
|
@ -1592,7 +1592,7 @@ fn test_monitor_update_on_pending_forwards() {
|
|||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[2].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[2], 1);
|
||||
}
|
||||
|
@ -1655,7 +1655,7 @@ fn monitor_update_claim_fail_no_response() {
|
|||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1820,7 +1820,7 @@ fn test_path_paused_mpp() {
|
|||
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
|
||||
let payment_secret = PaymentSecret([0xdb; 32]);
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), &nodes[0].net_graph_msg_handler, &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), &nodes[0].net_graph_msg_handler.network_graph.read().unwrap(), &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
|
||||
// Set us up to take multiple routes, one 0 -> 1 -> 3 and one 0 -> 2 -> 3:
|
||||
let path = route.paths[0].clone();
|
||||
|
|
|
@ -951,7 +951,7 @@ pub const TEST_FINAL_CLTV: u32 = 32;
|
|||
pub fn route_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route: &[&Node<'a, 'b, 'c>], recv_value: u64) -> (PaymentPreimage, PaymentHash) {
|
||||
let net_graph_msg_handler = &origin_node.net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&origin_node.node.get_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).unwrap();
|
||||
let route = get_route(&origin_node.node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &expected_route.last().unwrap().node.get_our_node_id(), None, &Vec::new(), recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
assert_eq!(route.paths.len(), 1);
|
||||
assert_eq!(route.paths[0].len(), expected_route.len());
|
||||
for (node, hop) in expected_route.iter().zip(route.paths[0].iter()) {
|
||||
|
@ -964,7 +964,7 @@ pub fn route_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route:
|
|||
pub fn route_over_limit<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route: &[&Node<'a, 'b, 'c>], recv_value: u64) {
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let net_graph_msg_handler = &origin_node.net_graph_msg_handler;
|
||||
let route = get_route(&origin_node.node.get_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).unwrap();
|
||||
let route = get_route(&origin_node.node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &expected_route.last().unwrap().node.get_our_node_id(), None, &Vec::new(), recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
assert_eq!(route.paths.len(), 1);
|
||||
assert_eq!(route.paths[0].len(), expected_route.len());
|
||||
for (node, hop) in expected_route.iter().zip(route.paths[0].iter()) {
|
||||
|
|
|
@ -157,7 +157,7 @@ fn test_async_inbound_update_fee() {
|
|||
// ...but before it's delivered, nodes[1] starts to send a payment back to nodes[0]...
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
nodes[1].node.send_payment(&get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap(), our_payment_hash, &None).unwrap();
|
||||
nodes[1].node.send_payment(&get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap(), our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[1], 1);
|
||||
|
||||
let payment_event = {
|
||||
|
@ -255,7 +255,7 @@ fn test_update_fee_unordered_raa() {
|
|||
// ...but before it's delivered, nodes[1] starts to send a payment back to nodes[0]...
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
nodes[1].node.send_payment(&get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap(), our_payment_hash, &None).unwrap();
|
||||
nodes[1].node.send_payment(&get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap(), our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[1], 1);
|
||||
|
||||
let payment_event = {
|
||||
|
@ -639,7 +639,7 @@ fn test_update_fee_with_fundee_update_add_htlc() {
|
|||
|
||||
let (our_payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[1]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 800000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 800000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
|
||||
// nothing happens since node[1] is in AwaitingRemoteRevoke
|
||||
nodes[1].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
|
@ -863,8 +863,8 @@ fn updates_shutdown_wait() {
|
|||
|
||||
let net_graph_msg_handler0 = &nodes[0].net_graph_msg_handler;
|
||||
let net_graph_msg_handler1 = &nodes[1].net_graph_msg_handler;
|
||||
let route_1 = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler0, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route_2 = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler1, &nodes[0].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route_1 = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler0.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route_2 = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler1.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route_1, payment_hash, &None), true, APIError::ChannelUnavailable {..}, {});
|
||||
unwrap_send_err!(nodes[1].node.send_payment(&route_2, payment_hash, &None), true, APIError::ChannelUnavailable {..}, {});
|
||||
|
||||
|
@ -927,7 +927,7 @@ fn htlc_fail_async_shutdown() {
|
|||
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -1302,7 +1302,7 @@ fn holding_cell_htlc_counting() {
|
|||
for _ in 0..::ln::channel::OUR_MAX_HTLCS {
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, payment_hash, &None).unwrap();
|
||||
payments.push((payment_preimage, payment_hash));
|
||||
}
|
||||
|
@ -1319,7 +1319,7 @@ fn holding_cell_htlc_counting() {
|
|||
let (_, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[1].node.send_payment(&route, payment_hash_1, &None), true, APIError::ChannelUnavailable { err },
|
||||
assert_eq!(err, "Cannot push more than their max accepted HTLCs"));
|
||||
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
|
||||
|
@ -1330,7 +1330,7 @@ fn holding_cell_htlc_counting() {
|
|||
let (_, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
}
|
||||
|
@ -1463,7 +1463,7 @@ fn test_duplicate_htlc_different_direction_onchain() {
|
|||
let (payment_preimage, payment_hash) = route_payment(&nodes[0], &vec!(&nodes[1])[..], 900_000);
|
||||
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 800_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 800_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
send_along_route_with_hash(&nodes[1], route, &vec!(&nodes[0])[..], 800_000, payment_hash);
|
||||
|
||||
// Provide preimage to node 0 by claiming payment
|
||||
|
@ -1535,7 +1535,7 @@ fn test_basic_channel_reserve() {
|
|||
let commit_tx_fee = 2 * commit_tx_fee_msat(get_feerate!(nodes[0], chan.2), 1 + 1);
|
||||
let max_can_send = 5000000 - channel_reserve - commit_tx_fee;
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), max_can_send + 1, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), max_can_send + 1, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let err = nodes[0].node.send_payment(&route, our_payment_hash, &None).err().unwrap();
|
||||
match err {
|
||||
PaymentSendFailure::AllFailedRetrySafe(ref fails) => {
|
||||
|
@ -1571,7 +1571,7 @@ fn test_chan_reserve_violation_outbound_htlc_inbound_chan() {
|
|||
($recv_value: expr) => {{
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(nodes[1]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes.first().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes.first().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
(route, payment_hash, payment_preimage)
|
||||
}}
|
||||
};
|
||||
|
@ -1603,7 +1603,7 @@ fn test_chan_reserve_violation_inbound_htlc_outbound_channel() {
|
|||
($recv_value: expr) => {{
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(nodes[1]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes.first().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes.first().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
(route, payment_hash, payment_preimage)
|
||||
}}
|
||||
};
|
||||
|
@ -1648,7 +1648,7 @@ fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
|
|||
($recv_value: expr) => {{
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
(route, payment_hash, payment_preimage)
|
||||
}}
|
||||
};
|
||||
|
@ -1730,7 +1730,7 @@ fn test_channel_reserve_holding_cell_htlcs() {
|
|||
($recv_value: expr) => {{
|
||||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes.last().unwrap().node.get_our_node_id(), None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
(route, payment_hash, payment_preimage)
|
||||
}}
|
||||
};
|
||||
|
@ -1995,7 +1995,7 @@ fn channel_reserve_in_flight_removes() {
|
|||
let (payment_preimage_3, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
|
||||
let send_1 = {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_3, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
|
||||
|
@ -2068,7 +2068,7 @@ fn channel_reserve_in_flight_removes() {
|
|||
let (payment_preimage_4, payment_hash_4) = get_payment_preimage_hash!(nodes[1]);
|
||||
let send_2 = {
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &[], 10000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &[], 10000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, payment_hash_4, &None).unwrap();
|
||||
check_added_monitors!(nodes[1], 1);
|
||||
let mut events = nodes[1].node.get_and_clear_pending_msg_events();
|
||||
|
@ -2985,7 +2985,7 @@ fn do_test_commitment_revoked_fail_backward_exhaustive(deliver_bs_raa: bool, use
|
|||
let (_, fourth_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, fourth_payment_hash, &None).unwrap();
|
||||
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
|
||||
assert!(nodes[1].node.get_and_clear_pending_events().is_empty());
|
||||
|
@ -3131,7 +3131,7 @@ fn fail_backward_pending_htlc_upon_channel_failure() {
|
|||
{
|
||||
let (_, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -3148,7 +3148,7 @@ fn fail_backward_pending_htlc_upon_channel_failure() {
|
|||
let (_, failed_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, failed_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 0);
|
||||
|
||||
|
@ -3163,7 +3163,7 @@ fn fail_backward_pending_htlc_upon_channel_failure() {
|
|||
let session_priv = SecretKey::from_slice(&[42; 32]).unwrap();
|
||||
let current_height = nodes[1].node.latest_block_height.load(Ordering::Acquire) as u32 + 1;
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let (onion_payloads, _amount_msat, cltv_expiry) = onion_utils::build_onion_payloads(&route.paths[0], 50_000, &None, current_height).unwrap();
|
||||
let onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.paths[0], &session_priv).unwrap();
|
||||
let onion_routing_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &payment_hash);
|
||||
|
@ -3229,7 +3229,7 @@ fn test_force_close_fail_back() {
|
|||
|
||||
let mut payment_event = {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, 42, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 1000000, 42, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -3402,7 +3402,7 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8) {
|
|||
let logger = test_utils::TestLogger::new();
|
||||
let payment_event = {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), Some(&nodes[0].node.list_usable_channels()), &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), Some(&nodes[0].node.list_usable_channels()), &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_1, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -3577,7 +3577,7 @@ fn do_test_drop_messages_peer_disconnect(messages_delivered: u8) {
|
|||
|
||||
// Channel should still work fine...
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), Some(&nodes[0].node.list_usable_channels()), &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), Some(&nodes[0].node.list_usable_channels()), &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let payment_preimage_2 = send_along_route(&nodes[0], route, &[&nodes[1]], 1000000).0;
|
||||
claim_payment(&nodes[0], &[&nodes[1]], payment_preimage_2, 1_000_000);
|
||||
}
|
||||
|
@ -3678,7 +3678,7 @@ fn test_funding_peer_disconnect() {
|
|||
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let (payment_preimage, _) = send_along_route(&nodes[0], route, &[&nodes[1]], 1000000);
|
||||
claim_payment(&nodes[0], &[&nodes[1]], payment_preimage, 1_000_000);
|
||||
}
|
||||
|
@ -3699,7 +3699,7 @@ fn test_drop_messages_peer_disconnect_dual_htlc() {
|
|||
// Now try to send a second payment which will fail to send
|
||||
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash_2, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -3840,7 +3840,7 @@ fn do_test_htlc_timeout(send_partial_mpp: bool) {
|
|||
|
||||
let our_payment_hash = if send_partial_mpp {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(&nodes[0]);
|
||||
let payment_secret = PaymentSecret([0xdb; 32]);
|
||||
// Use the utility function send_payment_along_path to send the payment with MPP data which
|
||||
|
@ -3903,7 +3903,7 @@ fn do_test_holding_cell_htlc_add_timeouts(forwarded_htlc: bool) {
|
|||
let (_, first_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
{
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, first_payment_hash, &None).unwrap();
|
||||
}
|
||||
assert_eq!(nodes[1].node.get_and_clear_pending_msg_events().len(), 1);
|
||||
|
@ -3913,7 +3913,7 @@ fn do_test_holding_cell_htlc_add_timeouts(forwarded_htlc: bool) {
|
|||
let (_, second_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
if forwarded_htlc {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, second_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let payment_event = SendEvent::from_event(nodes[0].node.get_and_clear_pending_msg_events().remove(0));
|
||||
|
@ -3923,7 +3923,7 @@ fn do_test_holding_cell_htlc_add_timeouts(forwarded_htlc: bool) {
|
|||
check_added_monitors!(nodes[1], 0);
|
||||
} else {
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[1].node.send_payment(&route, second_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[1], 0);
|
||||
}
|
||||
|
@ -5188,7 +5188,7 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
|
|||
let (_, payment_hash_2) = route_payment(&nodes[0], &[&nodes[2], &nodes[3], &nodes[4]], ds_dust_limit*1000); // not added < dust limit + HTLC tx fee
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let our_node_id = &nodes[1].node.get_our_node_id();
|
||||
let route = get_route(our_node_id, net_graph_msg_handler, &nodes[5].node.get_our_node_id(), None, &Vec::new(), ds_dust_limit*1000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(our_node_id, &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[5].node.get_our_node_id(), None, &Vec::new(), ds_dust_limit*1000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
// 2nd HTLC:
|
||||
send_along_route_with_hash(&nodes[1], route.clone(), &[&nodes[2], &nodes[3], &nodes[5]], ds_dust_limit*1000, payment_hash_1); // not added < dust limit + HTLC tx fee
|
||||
// 3rd HTLC:
|
||||
|
@ -5197,7 +5197,7 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
|
|||
let (_, payment_hash_3) = route_payment(&nodes[0], &[&nodes[2], &nodes[3], &nodes[4]], 1000000);
|
||||
// 5th HTLC:
|
||||
let (_, payment_hash_4) = route_payment(&nodes[0], &[&nodes[2], &nodes[3], &nodes[4]], 1000000);
|
||||
let route = get_route(our_node_id, net_graph_msg_handler, &nodes[5].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(our_node_id, &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[5].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
// 6th HTLC:
|
||||
send_along_route_with_hash(&nodes[1], route.clone(), &[&nodes[2], &nodes[3], &nodes[5]], 1000000, payment_hash_3);
|
||||
// 7th HTLC:
|
||||
|
@ -5206,13 +5206,13 @@ fn do_test_fail_backwards_unrevoked_remote_announce(deliver_last_raa: bool, anno
|
|||
// 8th HTLC:
|
||||
let (_, payment_hash_5) = route_payment(&nodes[0], &[&nodes[2], &nodes[3], &nodes[4]], 1000000);
|
||||
// 9th HTLC:
|
||||
let route = get_route(our_node_id, net_graph_msg_handler, &nodes[5].node.get_our_node_id(), None, &Vec::new(), ds_dust_limit*1000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(our_node_id, &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[5].node.get_our_node_id(), None, &Vec::new(), ds_dust_limit*1000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
send_along_route_with_hash(&nodes[1], route, &[&nodes[2], &nodes[3], &nodes[5]], ds_dust_limit*1000, payment_hash_5); // not added < dust limit + HTLC tx fee
|
||||
|
||||
// 10th HTLC:
|
||||
let (_, payment_hash_6) = route_payment(&nodes[0], &[&nodes[2], &nodes[3], &nodes[4]], ds_dust_limit*1000); // not added < dust limit + HTLC tx fee
|
||||
// 11th HTLC:
|
||||
let route = get_route(our_node_id, net_graph_msg_handler, &nodes[5].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(our_node_id, &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[5].node.get_our_node_id(), None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
send_along_route_with_hash(&nodes[1], route, &[&nodes[2], &nodes[3], &nodes[5]], 1000000, payment_hash_6);
|
||||
|
||||
// Double-check that six of the new HTLC were added
|
||||
|
@ -5599,7 +5599,7 @@ fn do_htlc_claim_current_remote_commitment_only(use_dust: bool) {
|
|||
|
||||
let (_, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &Vec::new(), if use_dust { 50000 } else { 3000000 }, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &Vec::new(), if use_dust { 50000 } else { 3000000 }, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -5925,7 +5925,7 @@ fn test_onion_failure() {
|
|||
let (_, payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 40000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
// positve case
|
||||
send_payment(&nodes[0], &vec!(&nodes[1], &nodes[2])[..], 40000, 40_000);
|
||||
|
||||
|
@ -6226,7 +6226,7 @@ fn test_update_add_htlc_bolt2_sender_value_below_minimum_msat() {
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
route.paths[0][0].fee_msat = 100;
|
||||
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
|
||||
|
@ -6247,7 +6247,7 @@ fn test_update_add_htlc_bolt2_sender_zero_value_msat() {
|
|||
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
route.paths[0][0].fee_msat = 0;
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
|
||||
assert_eq!(err, "Cannot send 0-msat HTLC"));
|
||||
|
@ -6268,7 +6268,7 @@ fn test_update_add_htlc_bolt2_receiver_zero_value_msat() {
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6294,7 +6294,7 @@ fn test_update_add_htlc_bolt2_sender_cltv_expiry_too_high() {
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000000, 500000001, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000000, 500000001, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::RouteError { err },
|
||||
assert_eq!(err, "Channel CLTV overflowed?!"));
|
||||
}
|
||||
|
@ -6316,7 +6316,7 @@ fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_num_and_htlc_id_increment()
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let payment_event = {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -6338,7 +6338,7 @@ fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_num_and_htlc_id_increment()
|
|||
}
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
|
||||
assert_eq!(err, "Cannot push more than their max accepted HTLCs"));
|
||||
|
||||
|
@ -6362,7 +6362,7 @@ fn test_update_add_htlc_bolt2_sender_exceed_max_htlc_value_in_flight() {
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], max_in_flight+1, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], max_in_flight+1, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
unwrap_send_err!(nodes[0].node.send_payment(&route, our_payment_hash, &None), true, APIError::ChannelUnavailable { err },
|
||||
assert_eq!(err, "Cannot send value that would put us over the max HTLC value in flight our peer will accept"));
|
||||
|
||||
|
@ -6391,7 +6391,7 @@ fn test_update_add_htlc_bolt2_receiver_check_amount_received_more_than_min() {
|
|||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let logger = test_utils::TestLogger::new();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], htlc_minimum_msat, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], htlc_minimum_msat, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6422,7 +6422,7 @@ fn test_update_add_htlc_bolt2_receiver_sender_can_afford_amount_sent() {
|
|||
let max_can_send = 5000000 - channel_reserve - commit_tx_fee_outbound;
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], max_can_send, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], max_can_send, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6454,7 +6454,7 @@ fn test_update_add_htlc_bolt2_receiver_check_max_htlc_limit() {
|
|||
let session_priv = SecretKey::from_slice(&[42; 32]).unwrap();
|
||||
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 3999999, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 3999999, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
|
||||
let cur_height = nodes[0].node.latest_block_height.load(Ordering::Acquire) as u32 + 1;
|
||||
let onion_keys = onion_utils::construct_onion_keys(&Secp256k1::signing_only(), &route.paths[0], &session_priv).unwrap();
|
||||
|
@ -6495,7 +6495,7 @@ fn test_update_add_htlc_bolt2_receiver_check_max_in_flight_msat() {
|
|||
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6520,7 +6520,7 @@ fn test_update_add_htlc_bolt2_receiver_check_cltv_expiry() {
|
|||
create_announced_chan_between_nodes_with_value(&nodes, 0, 1, 100000, 95000000, InitFeatures::known(), InitFeatures::known());
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6547,7 +6547,7 @@ fn test_update_add_htlc_bolt2_receiver_check_repeated_id_ignore() {
|
|||
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6594,7 +6594,7 @@ fn test_update_fulfill_htlc_bolt2_update_fulfill_htlc_before_commitment() {
|
|||
let chan = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
|
||||
let (our_payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
@ -6628,7 +6628,7 @@ fn test_update_fulfill_htlc_bolt2_update_fail_htlc_before_commitment() {
|
|||
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6661,7 +6661,7 @@ fn test_update_fulfill_htlc_bolt2_update_fail_malformed_htlc_before_commitment()
|
|||
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let updates = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
|
||||
|
@ -6777,7 +6777,7 @@ fn test_update_fulfill_htlc_bolt2_missing_badonion_bit_for_malformed_htlc_messag
|
|||
|
||||
let (_, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, &[], 1000000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
|
||||
|
@ -6830,7 +6830,7 @@ fn test_update_fulfill_htlc_bolt2_after_malformed_htlc_message_must_forward_upda
|
|||
//First hop
|
||||
let mut payment_event = {
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &Vec::new(), 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
nodes[0].node.send_payment(&route, our_payment_hash, &None).unwrap();
|
||||
check_added_monitors!(nodes[0], 1);
|
||||
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
|
||||
|
@ -7516,7 +7516,7 @@ fn test_bump_penalty_txn_on_revoked_commitment() {
|
|||
|
||||
let payment_preimage = route_payment(&nodes[0], &vec!(&nodes[1])[..], 3000000).0;
|
||||
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), net_graph_msg_handler, &nodes[0].node.get_our_node_id(), None, &Vec::new(), 3000000, 30, &logger).unwrap();
|
||||
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, &Vec::new(), 3000000, 30, &logger).unwrap();
|
||||
send_along_route(&nodes[1], route, &vec!(&nodes[0])[..], 3000000);
|
||||
|
||||
let revoked_txn = get_local_commitment_txn!(nodes[0], chan.2);
|
||||
|
@ -8068,7 +8068,7 @@ fn test_simple_payment_secret() {
|
|||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
|
||||
let payment_secret = PaymentSecret([0xdb; 32]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[2].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
send_along_route_with_secret(&nodes[0], route, &[&[&nodes[1], &nodes[2]]], 100000, payment_hash, Some(payment_secret.clone()));
|
||||
// Claiming with all the correct values but the wrong secret should result in nothing...
|
||||
assert_eq!(nodes[2].node.claim_funds(payment_preimage, &None, 100_000), false);
|
||||
|
@ -8094,7 +8094,7 @@ fn test_simple_mpp() {
|
|||
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
|
||||
let payment_secret = PaymentSecret([0xdb; 32]);
|
||||
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), net_graph_msg_handler, &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let mut route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[3].node.get_our_node_id(), None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
|
||||
let path = route.paths[0].clone();
|
||||
route.paths.push(path);
|
||||
route.paths[0][0].pubkey = nodes[1].node.get_our_node_id();
|
||||
|
|
|
@ -5,11 +5,10 @@
|
|||
|
||||
use bitcoin::secp256k1::key::PublicKey;
|
||||
|
||||
use chain::chaininterface::ChainWatchInterface;
|
||||
use ln::channelmanager;
|
||||
use ln::features::{ChannelFeatures, NodeFeatures};
|
||||
use ln::msgs::{DecodeError,ErrorAction,LightningError};
|
||||
use routing::network_graph::{NetGraphMsgHandler, RoutingFees};
|
||||
use routing::network_graph::{NetworkGraph, RoutingFees};
|
||||
use util::ser::{Writeable, Readable};
|
||||
use util::logger::Logger;
|
||||
|
||||
|
@ -145,7 +144,7 @@ struct DummyDirectionalChannelInfo {
|
|||
}
|
||||
|
||||
|
||||
/// Gets a route from us (as specified in the provided NetGraphMsgHandler) to the given target node.
|
||||
/// Gets a route from us (as specified in the provided NetworkGraph) to the given target node.
|
||||
///
|
||||
/// Extra routing hops between known nodes and the target will be used if they are included in
|
||||
/// last_hops.
|
||||
|
@ -161,8 +160,8 @@ struct DummyDirectionalChannelInfo {
|
|||
/// The fees on channels from us to next-hops are ignored (as they are assumed to all be
|
||||
/// equal), however the enabled/disabled bit on such channels as well as the htlc_minimum_msat
|
||||
/// *is* checked as they may change based on the receiving node.
|
||||
pub fn get_route<C: Deref, L: Deref>(our_node_id: &PublicKey, net_graph_msg_handler: &NetGraphMsgHandler<C, L>, target: &PublicKey, first_hops: Option<&[channelmanager::ChannelDetails]>,
|
||||
last_hops: &[RouteHint], final_value_msat: u64, final_cltv: u32, logger: L) -> Result<Route, LightningError> where C::Target: ChainWatchInterface, L::Target: Logger {
|
||||
pub fn get_route<L: Deref>(our_node_id: &PublicKey, network: &NetworkGraph, target: &PublicKey, first_hops: Option<&[channelmanager::ChannelDetails]>,
|
||||
last_hops: &[RouteHint], final_value_msat: u64, final_cltv: u32, logger: L) -> Result<Route, LightningError> where L::Target: Logger {
|
||||
// TODO: Obviously *only* using total fee cost sucks. We should consider weighting by
|
||||
// uptime/success in using a node in the past.
|
||||
if *target == *our_node_id {
|
||||
|
@ -188,7 +187,6 @@ pub fn get_route<C: Deref, L: Deref>(our_node_id: &PublicKey, net_graph_msg_hand
|
|||
}
|
||||
};
|
||||
|
||||
let network = net_graph_msg_handler.network_graph.read().unwrap();
|
||||
let mut targets = BinaryHeap::new(); //TODO: Do we care about switching to eg Fibbonaci heap?
|
||||
let mut dist = HashMap::with_capacity(network.get_nodes().len());
|
||||
|
||||
|
@ -403,8 +401,8 @@ pub fn get_route<C: Deref, L: Deref>(our_node_id: &PublicKey, net_graph_msg_hand
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use chain::chaininterface;
|
||||
use routing::router::{NetGraphMsgHandler, RoutingFees};
|
||||
use routing::router::{get_route, RouteHint};
|
||||
use routing::router::{get_route, RouteHint, RoutingFees};
|
||||
use routing::network_graph::NetGraphMsgHandler;
|
||||
use ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
|
||||
use ln::msgs::{ErrorAction, LightningError, UnsignedChannelAnnouncement, ChannelAnnouncement, RoutingMessageHandler,
|
||||
NodeAnnouncement, UnsignedNodeAnnouncement, ChannelUpdate, UnsignedChannelUpdate};
|
||||
|
@ -816,7 +814,7 @@ mod tests {
|
|||
add_or_update_node(&net_graph_msg_handler, &secp_ctx, node6_privkey, NodeFeatures::from_le_bytes(id_to_feature_flags!(6)), 0);
|
||||
|
||||
// Simple route to 3 via 2
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node3, None, &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node3, None, &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 2);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node2);
|
||||
|
@ -859,7 +857,7 @@ mod tests {
|
|||
});
|
||||
|
||||
// If all the channels require some features we don't understand, route should fail
|
||||
if let Err(LightningError{err, action: ErrorAction::IgnoreError}) = get_route(&our_id, &net_graph_msg_handler, &node3, None, &Vec::new(), 100, 42, Arc::clone(&logger)) {
|
||||
if let Err(LightningError{err, action: ErrorAction::IgnoreError}) = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node3, None, &Vec::new(), 100, 42, Arc::clone(&logger)) {
|
||||
assert_eq!(err, "Failed to find a path to the given destination");
|
||||
} else { panic!(); }
|
||||
|
||||
|
@ -875,7 +873,7 @@ mod tests {
|
|||
inbound_capacity_msat: 0,
|
||||
is_live: true,
|
||||
}];
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 2);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node8);
|
||||
|
@ -939,7 +937,7 @@ mod tests {
|
|||
inbound_capacity_msat: 0,
|
||||
is_live: true,
|
||||
}];
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 2);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node8);
|
||||
|
@ -966,7 +964,7 @@ mod tests {
|
|||
// the node_announcement.
|
||||
|
||||
// Route to 1 via 2 and 3 because our channel to 1 is disabled
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node1, None, &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node1, None, &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 3);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node2);
|
||||
|
@ -1002,7 +1000,7 @@ mod tests {
|
|||
inbound_capacity_msat: 0,
|
||||
is_live: true,
|
||||
}];
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node3, Some(&our_chans), &Vec::new(), 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 2);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node8);
|
||||
|
@ -1047,7 +1045,7 @@ mod tests {
|
|||
});
|
||||
|
||||
// Simple test across 2, 3, 5, and 4 via a last_hop channel
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node7, None, &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node7, None, &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 5);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node2);
|
||||
|
@ -1099,7 +1097,7 @@ mod tests {
|
|||
inbound_capacity_msat: 0,
|
||||
is_live: true,
|
||||
}];
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node7, Some(&our_chans), &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node7, Some(&our_chans), &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 2);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node4);
|
||||
|
@ -1119,7 +1117,7 @@ mod tests {
|
|||
last_hops[0].fees.base_msat = 1000;
|
||||
|
||||
// Revert to via 6 as the fee on 8 goes up
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node7, None, &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node7, None, &last_hops, 100, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 4);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node2);
|
||||
|
@ -1153,7 +1151,7 @@ mod tests {
|
|||
assert_eq!(route.paths[0][3].channel_features.le_flags(), &Vec::new()); // We can't learn any flags from invoices, sadly
|
||||
|
||||
// ...but still use 8 for larger payments as 6 has a variable feerate
|
||||
let route = get_route(&our_id, &net_graph_msg_handler, &node7, None, &last_hops, 2000, 42, Arc::clone(&logger)).unwrap();
|
||||
let route = get_route(&our_id, &net_graph_msg_handler.network_graph.read().unwrap(), &node7, None, &last_hops, 2000, 42, Arc::clone(&logger)).unwrap();
|
||||
assert_eq!(route.paths[0].len(), 5);
|
||||
|
||||
assert_eq!(route.paths[0][0].pubkey, node2);
|
||||
|
|
Loading…
Add table
Reference in a new issue