Skip to content

Commit

Permalink
f use get_route_and_payment_hash macro
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorTigerstrom committed Apr 13, 2022
1 parent ea506e3 commit 697bda8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 26 deletions.
9 changes: 6 additions & 3 deletions lightning/src/ln/functional_test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1174,16 +1174,19 @@ macro_rules! get_route_and_payment_hash {
$crate::get_route_and_payment_hash!($send_node, $recv_node, vec![], $recv_value, TEST_FINAL_CLTV)
}};
($send_node: expr, $recv_node: expr, $last_hops: expr, $recv_value: expr, $cltv: expr) => {{
use $crate::chain::keysinterface::KeysInterface;
let (payment_preimage, payment_hash, payment_secret) = $crate::get_payment_preimage_hash!($recv_node, Some($recv_value));
let payment_params = $crate::routing::router::PaymentParameters::from_node_id($recv_node.node.get_our_node_id())
.with_features($crate::ln::features::InvoiceFeatures::known())
.with_route_hints($last_hops);
$crate::get_route_and_payment_hash!($send_node, $recv_node, payment_params, $recv_value, $cltv, true)
}};
($send_node: expr, $recv_node: expr, $payment_params: expr, $recv_value: expr, $cltv: expr, true /* with specified payment_params */) => {{
use $crate::chain::keysinterface::KeysInterface;
let (payment_preimage, payment_hash, payment_secret) = $crate::get_payment_preimage_hash!($recv_node, Some($recv_value));
let scorer = $crate::util::test_utils::TestScorer::with_penalty(0);
let keys_manager = $crate::util::test_utils::TestKeysInterface::new(&[0u8; 32], bitcoin::network::constants::Network::Testnet);
let random_seed_bytes = keys_manager.get_secure_random_bytes();
let route = $crate::routing::router::get_route(
&$send_node.node.get_our_node_id(), &payment_params, &$send_node.network_graph.read_only(),
&$send_node.node.get_our_node_id(), &$payment_params, &$send_node.network_graph.read_only(),
Some(&$send_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
$recv_value, $cltv, $send_node.logger, &scorer, &random_seed_bytes
).unwrap();
Expand Down
30 changes: 7 additions & 23 deletions lightning/src/ln/onion_route_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ use bitcoin::hashes::sha256::Hash as Sha256;
use bitcoin::secp256k1;
use bitcoin::secp256k1::Secp256k1;
use bitcoin::secp256k1::key::{PublicKey, SecretKey};
use bitcoin::network::constants::Network;

use io;
use prelude::*;
Expand Down Expand Up @@ -603,15 +602,8 @@ fn test_default_to_onion_payload_tlv_format() {
// their `features` aren't used when creating the `route`.
network_graph.clear_nodes_announcement_info();

let scorer = test_utils::TestScorer::with_penalty(0);
let seed = [0u8; 32];
let keys_manager = test_utils::TestKeysInterface::new(&seed, Network::Testnet);
let random_seed_bytes = keys_manager.get_secure_random_bytes();
let read_only_network_graph = &network_graph.read_only();
let announced_route = get_route(
&origin_node.node.get_our_node_id(), &payment_params, read_only_network_graph,
Some(&origin_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
1000000, TEST_FINAL_CLTV, origin_node.logger, &scorer, &random_seed_bytes).unwrap();
let (announced_route, _, _, _) = get_route_and_payment_hash!(
origin_node, nodes[3], payment_params, 10_000, TEST_FINAL_CLTV, true);

let hops = &announced_route.paths[0];
// Assert that the hop between `nodes[1]` and `nodes[2]` defaults to supporting variable length
Expand Down Expand Up @@ -642,14 +634,12 @@ fn test_default_to_onion_payload_tlv_format() {
}]);

let unannounced_chan_params = PaymentParameters::from_node_id(nodes[4].node.get_our_node_id()).with_route_hints(vec![last_hop]);
let unannounced_route = get_route(
&origin_node.node.get_our_node_id(), &unannounced_chan_params, read_only_network_graph,
Some(&origin_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
10000, TEST_FINAL_CLTV, origin_node.logger, &scorer, &random_seed_bytes).unwrap();
let (unannounced_route, _, _, _) = get_route_and_payment_hash!(
origin_node, nodes[4], unannounced_chan_params, 10_000, TEST_FINAL_CLTV, true);

let unannounced_chan_hop = &unannounced_route.paths[0][3];
// Ensure that `nodes[4]` doesn't exist in `nodes[0]`'s `network_graph`, as it's not public.
assert!(read_only_network_graph.nodes().get(&NodeId::from_pubkey(&nodes[4].node.get_our_node_id())).is_none());
assert!(&network_graph.read_only().nodes().get(&NodeId::from_pubkey(&nodes[4].node.get_our_node_id())).is_none());
// Assert that the hop between `nodes[3]` and `nodes[4]` defaults to supporting variable length
// onions, even though `nodes[4]` as `nodes[0]` doesn't exists in `nodes[0]`'s `network_graph`,
// and no `InvoiceFeatures` for the `payment_params` exists, which would otherwise have been
Expand Down Expand Up @@ -703,10 +693,6 @@ fn test_do_not_use_default_to_tlv_onions_if_other_features_not_supporting_them_e
let origin_node = &nodes[0];
let network_graph = origin_node.network_graph;
network_graph.clear_nodes_announcement_info();
let scorer = test_utils::TestScorer::with_penalty(0);
let seed = [0u8; 32];
let keys_manager = test_utils::TestKeysInterface::new(&seed, Network::Testnet);
let random_seed_bytes = keys_manager.get_secure_random_bytes();

// Set `NodeAnnouncementInfo` `features` which do not support variable length onions for
// `nodes[2]` in `nodes[0]`'s `network_graph`.
Expand All @@ -722,10 +708,8 @@ fn test_do_not_use_default_to_tlv_onions_if_other_features_not_supporting_them_e
};
let _res = network_graph.update_node_from_unsigned_announcement(&nodes_2_unsigned_node_announcement);

let route = get_route(
&origin_node.node.get_our_node_id(), &payment_params, &network_graph.read_only(),
Some(&origin_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
1000000, TEST_FINAL_CLTV, origin_node.logger, &scorer, &random_seed_bytes).unwrap();
let (route, _, _, _) = get_route_and_payment_hash!(
origin_node, nodes[3], payment_params, 10_000, TEST_FINAL_CLTV, true);

let hops = &route.paths[0];

Expand Down

0 comments on commit 697bda8

Please sign in to comment.