Skip to content

Commit 3a4c98b

Browse files
committed
Stop relying on *Features::known in fuzzing tests
As we move towards specify supported/required feature bits in the module(s) where they are supported, the global `known` feature set constructors no longer make sense. Here we stop relying on the `known` method in our fuzz tests.
1 parent a715ee3 commit 3a4c98b

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ use lightning::chain::transaction::OutPoint;
3838
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator};
3939
use lightning::chain::keysinterface::{KeyMaterial, KeysInterface, InMemorySigner, Recipient};
4040
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
41-
use lightning::ln::channelmanager::{ChainParameters, ChannelManager, PaymentSendFailure, ChannelManagerReadArgs};
41+
use lightning::ln::channelmanager::{self, ChainParameters, ChannelManager, PaymentSendFailure, ChannelManagerReadArgs};
4242
use lightning::ln::channel::FEE_SPIKE_BUFFER_FEE_INCREASE_MULTIPLE;
43-
use lightning::ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
4443
use lightning::ln::msgs::{CommitmentUpdate, ChannelMessageHandler, DecodeError, UpdateAddHTLC, Init};
4544
use lightning::ln::script::ShutdownScript;
4645
use lightning::util::enforcing_trait_impls::{EnforcingSigner, EnforcementState};
@@ -315,9 +314,9 @@ fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, p
315314
if let Err(err) = source.send_payment(&Route {
316315
paths: vec![vec![RouteHop {
317316
pubkey: dest.get_our_node_id(),
318-
node_features: NodeFeatures::known(),
317+
node_features: channelmanager::provided_node_features(),
319318
short_channel_id: dest_chan_id,
320-
channel_features: ChannelFeatures::known(),
319+
channel_features: channelmanager::provided_channel_features(),
321320
fee_msat: amt,
322321
cltv_expiry_delta: 200,
323322
}]],
@@ -334,16 +333,16 @@ fn send_hop_payment(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, des
334333
if let Err(err) = source.send_payment(&Route {
335334
paths: vec![vec![RouteHop {
336335
pubkey: middle.get_our_node_id(),
337-
node_features: NodeFeatures::known(),
336+
node_features: channelmanager::provided_node_features(),
338337
short_channel_id: middle_chan_id,
339-
channel_features: ChannelFeatures::known(),
338+
channel_features: channelmanager::provided_channel_features(),
340339
fee_msat: 50000,
341340
cltv_expiry_delta: 100,
342341
},RouteHop {
343342
pubkey: dest.get_our_node_id(),
344-
node_features: NodeFeatures::known(),
343+
node_features: channelmanager::provided_node_features(),
345344
short_channel_id: dest_chan_id,
346-
channel_features: ChannelFeatures::known(),
345+
channel_features: channelmanager::provided_channel_features(),
347346
fee_msat: amt,
348347
cltv_expiry_delta: 200,
349348
}]],
@@ -422,8 +421,8 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
422421
let mut channel_txn = Vec::new();
423422
macro_rules! make_channel {
424423
($source: expr, $dest: expr, $chan_id: expr) => { {
425-
$source.peer_connected(&$dest.get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
426-
$dest.peer_connected(&$source.get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
424+
$source.peer_connected(&$dest.get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
425+
$dest.peer_connected(&$source.get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
427426

428427
$source.create_channel($dest.get_our_node_id(), 100_000, 42, 0, None).unwrap();
429428
let open_channel = {
@@ -434,7 +433,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
434433
} else { panic!("Wrong event type"); }
435434
};
436435

437-
$dest.handle_open_channel(&$source.get_our_node_id(), InitFeatures::known(), &open_channel);
436+
$dest.handle_open_channel(&$source.get_our_node_id(), channelmanager::provided_init_features(), &open_channel);
438437
let accept_channel = {
439438
let events = $dest.get_and_clear_pending_msg_events();
440439
assert_eq!(events.len(), 1);
@@ -443,7 +442,7 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
443442
} else { panic!("Wrong event type"); }
444443
};
445444

446-
$source.handle_accept_channel(&$dest.get_our_node_id(), InitFeatures::known(), &accept_channel);
445+
$source.handle_accept_channel(&$dest.get_our_node_id(), channelmanager::provided_init_features(), &accept_channel);
447446
let funding_output;
448447
{
449448
let events = $source.get_and_clear_pending_events();
@@ -940,15 +939,15 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
940939
},
941940
0x0e => {
942941
if chan_a_disconnected {
943-
nodes[0].peer_connected(&nodes[1].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
944-
nodes[1].peer_connected(&nodes[0].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
942+
nodes[0].peer_connected(&nodes[1].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
943+
nodes[1].peer_connected(&nodes[0].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
945944
chan_a_disconnected = false;
946945
}
947946
},
948947
0x0f => {
949948
if chan_b_disconnected {
950-
nodes[1].peer_connected(&nodes[2].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
951-
nodes[2].peer_connected(&nodes[1].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
949+
nodes[1].peer_connected(&nodes[2].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
950+
nodes[2].peer_connected(&nodes[1].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
952951
chan_b_disconnected = false;
953952
}
954953
},
@@ -1143,13 +1142,13 @@ pub fn do_test<Out: Output>(data: &[u8], underlying_out: Out) {
11431142

11441143
// Next, make sure peers are all connected to each other
11451144
if chan_a_disconnected {
1146-
nodes[0].peer_connected(&nodes[1].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
1147-
nodes[1].peer_connected(&nodes[0].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
1145+
nodes[0].peer_connected(&nodes[1].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
1146+
nodes[1].peer_connected(&nodes[0].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
11481147
chan_a_disconnected = false;
11491148
}
11501149
if chan_b_disconnected {
1151-
nodes[1].peer_connected(&nodes[2].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
1152-
nodes[2].peer_connected(&nodes[1].get_our_node_id(), &Init { features: InitFeatures::known(), remote_network_address: None });
1150+
nodes[1].peer_connected(&nodes[2].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
1151+
nodes[2].peer_connected(&nodes[1].get_our_node_id(), &Init { features: channelmanager::provided_init_features(), remote_network_address: None });
11531152
chan_b_disconnected = false;
11541153
}
11551154

fuzz/src/router.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ use bitcoin::hash_types::BlockHash;
1313

1414
use lightning::chain;
1515
use lightning::chain::transaction::OutPoint;
16-
use lightning::ln::channelmanager::{ChannelDetails, ChannelCounterparty};
17-
use lightning::ln::features::InitFeatures;
16+
use lightning::ln::channelmanager::{self, ChannelDetails, ChannelCounterparty};
1817
use lightning::ln::msgs;
1918
use lightning::routing::gossip::{NetworkGraph, RoutingFees};
2019
use lightning::routing::router::{find_route, PaymentParameters, RouteHint, RouteHintHop, RouteParameters};
@@ -211,7 +210,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
211210
channel_id: [0; 32],
212211
counterparty: ChannelCounterparty {
213212
node_id: *rnid,
214-
features: InitFeatures::known(),
213+
features: channelmanager::provided_init_features(),
215214
unspendable_punishment_reserve: 0,
216215
forwarding_info: None,
217216
outbound_htlc_minimum_msat: None,

0 commit comments

Comments
 (0)