Skip to content

Commit e54fe29

Browse files
f - Update test
1 parent dc9bb5a commit e54fe29

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

lightning/src/ln/onion_route_tests.rs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use ln::channelmanager::{self, ChannelManager, ChannelManagerReadArgs, HTLCForwa
1919
use ln::onion_utils;
2020
use routing::gossip::{NetworkUpdate, RoutingFees};
2121
use routing::router::{get_route, PaymentParameters, Route, RouteHint, RouteHintHop};
22-
use ln::features::InitFeatures;
22+
use ln::features::{InitFeatures, InvoiceFeatures};
2323
use ln::msgs;
2424
use ln::msgs::{ChannelMessageHandler, ChannelUpdate};
2525
use ln::wire::Encode;
@@ -791,7 +791,10 @@ fn test_onion_failure_stale_channel_update() {
791791
}
792792

793793
#[test]
794-
fn test_always_create_onion_payload_tlv_format() {
794+
fn test_always_create_tlv_format_onion_payloads() {
795+
// Verify that we always generate tlv onion format payloads, even if the features specifically
796+
// specifies no support for variable length onions, as the legacy payload format has been
797+
// deprecated in BOLT4.
795798
let chanmon_cfgs = create_chanmon_cfgs(3);
796799
let mut node_cfgs = create_node_cfgs(3, &chanmon_cfgs);
797800

@@ -808,26 +811,32 @@ fn test_always_create_onion_payload_tlv_format() {
808811
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::empty(), InitFeatures::empty());
809812
create_announced_chan_between_nodes(&nodes, 1, 2, InitFeatures::empty(), InitFeatures::empty());
810813

811-
let (route, _payment_hash, _payment_preimage, _payment_secret) = get_route_and_payment_hash!(nodes[0], nodes[2], 40000);
814+
let payment_params = PaymentParameters::from_node_id(nodes[2].node.get_our_node_id())
815+
.with_features(InvoiceFeatures::empty());
816+
let (route, _payment_hash, _payment_preimage, _payment_secret) = get_route_and_payment_hash!(nodes[0], nodes[2], payment_params, 40000, TEST_FINAL_CLTV);
812817

813818
let hops = &route.paths[0];
814-
// Asserts that the first hop to `node[1]` returns `false` for
815-
// `node_features.supports_variable_length_onion()`
819+
// Asserts that the first hop to `node[1]` signals no support for variable length onions.
816820
assert!(!hops[0].node_features.supports_variable_length_onion());
817-
// Asserts that the second hop to `node[2]` returns `true` for
818-
// `node_features.supports_variable_length_onion()`
819-
assert!(hops[1].node_features.supports_variable_length_onion());
821+
// Asserts that the first hop to `node[1]` signals no support for variable length onions.
822+
assert!(!hops[1].node_features.supports_variable_length_onion());
820823

821824
let cur_height = nodes[0].best_block_info().1 + 1;
822825
let (onion_payloads, _htlc_msat, _htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 40000, &None, cur_height, &None).unwrap();
823826

824-
for onion_payload in onion_payloads.iter() {
825-
match onion_payload.format {
826-
msgs::OnionHopDataFormat::Legacy {..} => {
827-
panic!("`onion_utils::build_onion_payloads` generated a `msgs::OnionHopDataFormat::Legacy` payload");
828-
}
829-
_ => {}
830-
}
827+
match onion_payloads[0].format {
828+
msgs::OnionHopDataFormat::NonFinalNode {..} => {},
829+
_ => { panic!(
830+
"Should have generated a `msgs::OnionHopDataFormat::NonFinalNode` payload for `hops[0]`,
831+
despite that the features signals no support for variable length onions"
832+
)}
833+
}
834+
match onion_payloads[1].format {
835+
msgs::OnionHopDataFormat::FinalNode {..} => {},
836+
_ => {panic!(
837+
"Should have generated a `msgs::OnionHopDataFormat::FinalNode` payload for `hops[1]`,
838+
despite that the features signals no support for variable length onions"
839+
)}
831840
}
832841
}
833842

0 commit comments

Comments
 (0)