Skip to content

Commit b93fe32

Browse files
committed
Remove all remaining references to *Features::known
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. In anticipation of removing the `known` constructor, this commit removes all remaining references to it outside of features.rs.
1 parent f6fa624 commit b93fe32

File tree

7 files changed

+27
-22
lines changed

7 files changed

+27
-22
lines changed

lightning/src/chain/chainmonitor.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -725,8 +725,7 @@ mod tests {
725725
use ::{get_htlc_update_msgs, get_local_commitment_txn, get_revoke_commit_msgs, get_route_and_payment_hash, unwrap_send_err};
726726
use chain::{ChannelMonitorUpdateErr, Confirm, Watch};
727727
use chain::channelmonitor::LATENCY_GRACE_PERIOD_BLOCKS;
728-
use ln::channelmanager::PaymentSendFailure;
729-
use ln::features::InitFeatures;
728+
use ln::channelmanager::{self, PaymentSendFailure};
730729
use ln::functional_test_utils::*;
731730
use ln::msgs::ChannelMessageHandler;
732731
use util::errors::APIError;
@@ -741,7 +740,7 @@ mod tests {
741740
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
742741
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
743742
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
744-
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
743+
create_announced_chan_between_nodes(&nodes, 0, 1, channelmanager::provided_init_features(), channelmanager::provided_init_features());
745744

746745
// Route two payments to be claimed at the same time.
747746
let (payment_preimage_1, payment_hash_1, _) = route_payment(&nodes[0], &[&nodes[1]], 1_000_000);
@@ -818,7 +817,7 @@ mod tests {
818817
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
819818
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
820819
let channel = create_announced_chan_between_nodes(
821-
&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
820+
&nodes, 0, 1, channelmanager::provided_init_features(), channelmanager::provided_init_features());
822821

823822
// Get a route for later and rebalance the channel somewhat
824823
send_payment(&nodes[0], &[&nodes[1]], 10_000_000);
@@ -894,7 +893,7 @@ mod tests {
894893
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
895894
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
896895
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
897-
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
896+
create_announced_chan_between_nodes(&nodes, 0, 1, channelmanager::provided_init_features(), channelmanager::provided_init_features());
898897

899898
chanmon_cfgs[0].persister.chain_sync_monitor_persistences.lock().unwrap().clear();
900899
chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::PermanentFailure));

lightning/src/chain/channelmonitor.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3767,8 +3767,7 @@ mod tests {
37673767
use ln::{PaymentPreimage, PaymentHash};
37683768
use ln::chan_utils;
37693769
use ln::chan_utils::{HTLCOutputInCommitment, ChannelPublicKeys, ChannelTransactionParameters, HolderCommitmentTransaction, CounterpartyChannelTransactionParameters};
3770-
use ln::channelmanager::PaymentSendFailure;
3771-
use ln::features::InitFeatures;
3770+
use ln::channelmanager::{self, PaymentSendFailure};
37723771
use ln::functional_test_utils::*;
37733772
use ln::script::ShutdownScript;
37743773
use util::errors::APIError;
@@ -3797,9 +3796,9 @@ mod tests {
37973796
let node_chanmgrs = create_node_chanmgrs(3, &node_cfgs, &[None, None, None]);
37983797
let nodes = create_network(3, &node_cfgs, &node_chanmgrs);
37993798
let channel = create_announced_chan_between_nodes(
3800-
&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
3799+
&nodes, 0, 1, channelmanager::provided_init_features(), channelmanager::provided_init_features());
38013800
create_announced_chan_between_nodes(
3802-
&nodes, 1, 2, InitFeatures::known(), InitFeatures::known());
3801+
&nodes, 1, 2, channelmanager::provided_init_features(), channelmanager::provided_init_features());
38033802

38043803
// Rebalance somewhat
38053804
send_payment(&nodes[0], &[&nodes[1]], 10_000_000);

lightning/src/ln/msgs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2063,7 +2063,7 @@ mod tests {
20632063
let sig_2 = get_sig_on!(privkey_2, secp_ctx, String::from("01010101010101010101010101010101"));
20642064
let sig_3 = get_sig_on!(privkey_3, secp_ctx, String::from("01010101010101010101010101010101"));
20652065
let sig_4 = get_sig_on!(privkey_4, secp_ctx, String::from("01010101010101010101010101010101"));
2066-
let mut features = ChannelFeatures::known();
2066+
let mut features = ChannelFeatures::empty();
20672067
if unknown_features_bits {
20682068
features = ChannelFeatures::from_le_bytes(vec![0xFF, 0xFF]);
20692069
}

lightning/src/ln/script.rs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use bitcoin::hash_types::{WPubkeyHash, WScriptHash};
77
use bitcoin::secp256k1::PublicKey;
88
use bitcoin::util::address::WitnessVersion;
99

10+
use ln::channelmanager;
1011
use ln::features::InitFeatures;
1112
use ln::msgs::DecodeError;
1213
use util::ser::{Readable, Writeable, Writer};
@@ -134,7 +135,7 @@ impl TryFrom<Script> for ShutdownScript {
134135
type Error = InvalidShutdownScript;
135136

136137
fn try_from(script: Script) -> Result<Self, Self::Error> {
137-
Self::try_from((script, &InitFeatures::known()))
138+
Self::try_from((script, &channelmanager::provided_init_features()))
138139
}
139140
}
140141

@@ -199,15 +200,21 @@ mod shutdown_script_tests {
199200
.into_script()
200201
}
201202

203+
fn any_segwit_features() -> InitFeatures {
204+
let mut features = InitFeatures::empty();
205+
features.set_shutdown_any_segwit_optional();
206+
features
207+
}
208+
202209
#[test]
203210
fn generates_p2wpkh_from_pubkey() {
204211
let pubkey = pubkey();
205212
let pubkey_hash = pubkey.wpubkey_hash().unwrap();
206213
let p2wpkh_script = Script::new_v0_p2wpkh(&pubkey_hash);
207214

208215
let shutdown_script = ShutdownScript::new_p2wpkh_from_pubkey(pubkey.inner);
209-
assert!(shutdown_script.is_compatible(&InitFeatures::known()));
210-
assert!(shutdown_script.is_compatible(&InitFeatures::known().clear_shutdown_anysegwit()));
216+
assert!(shutdown_script.is_compatible(&any_segwit_features()));
217+
assert!(shutdown_script.is_compatible(&InitFeatures::empty()));
211218
assert_eq!(shutdown_script.into_inner(), p2wpkh_script);
212219
}
213220

@@ -217,8 +224,8 @@ mod shutdown_script_tests {
217224
let p2wpkh_script = Script::new_v0_p2wpkh(&pubkey_hash);
218225

219226
let shutdown_script = ShutdownScript::new_p2wpkh(&pubkey_hash);
220-
assert!(shutdown_script.is_compatible(&InitFeatures::known()));
221-
assert!(shutdown_script.is_compatible(&InitFeatures::known().clear_shutdown_anysegwit()));
227+
assert!(shutdown_script.is_compatible(&any_segwit_features()));
228+
assert!(shutdown_script.is_compatible(&InitFeatures::empty()));
222229
assert_eq!(shutdown_script.into_inner(), p2wpkh_script);
223230
assert!(ShutdownScript::try_from(p2wpkh_script).is_ok());
224231
}
@@ -229,8 +236,8 @@ mod shutdown_script_tests {
229236
let p2wsh_script = Script::new_v0_p2wsh(&script_hash);
230237

231238
let shutdown_script = ShutdownScript::new_p2wsh(&script_hash);
232-
assert!(shutdown_script.is_compatible(&InitFeatures::known()));
233-
assert!(shutdown_script.is_compatible(&InitFeatures::known().clear_shutdown_anysegwit()));
239+
assert!(shutdown_script.is_compatible(&any_segwit_features()));
240+
assert!(shutdown_script.is_compatible(&InitFeatures::empty()));
234241
assert_eq!(shutdown_script.into_inner(), p2wsh_script);
235242
assert!(ShutdownScript::try_from(p2wsh_script).is_ok());
236243
}
@@ -239,8 +246,8 @@ mod shutdown_script_tests {
239246
fn generates_segwit_from_non_v0_witness_program() {
240247
let witness_program = Script::new_witness_program(WitnessVersion::V16, &[0; 40]);
241248
let shutdown_script = ShutdownScript::new_witness_program(WitnessVersion::V16, &[0; 40]).unwrap();
242-
assert!(shutdown_script.is_compatible(&InitFeatures::known()));
243-
assert!(!shutdown_script.is_compatible(&InitFeatures::known().clear_shutdown_anysegwit()));
249+
assert!(shutdown_script.is_compatible(&any_segwit_features()));
250+
assert!(!shutdown_script.is_compatible(&InitFeatures::empty()));
244251
assert_eq!(shutdown_script.into_inner(), witness_program);
245252
}
246253

lightning/src/onion_message/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ fn create_nodes(num_messengers: u8) -> Vec<MessengerNode> {
4848
}
4949
for idx in 0..num_messengers - 1 {
5050
let i = idx as usize;
51-
let mut features = InitFeatures::known();
51+
let mut features = InitFeatures::empty();
5252
features.set_onion_messages_optional();
5353
let init_msg = msgs::Init { features, remote_network_address: None };
5454
nodes[i].messenger.peer_connected(&nodes[i + 1].get_node_pk(), &init_msg.clone()).unwrap();

lightning/src/routing/router.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2860,7 +2860,7 @@ mod tests {
28602860
let random_seed_bytes = keys_manager.get_secure_random_bytes();
28612861

28622862
// Disable nodes 1, 2, and 8 by requiring unknown feature bits
2863-
let mut unknown_features = NodeFeatures::known();
2863+
let mut unknown_features = NodeFeatures::empty();
28642864
unknown_features.set_unknown_feature_required();
28652865
add_or_update_node(&gossip_sync, &secp_ctx, &privkeys[0], unknown_features.clone(), 1);
28662866
add_or_update_node(&gossip_sync, &secp_ctx, &privkeys[1], unknown_features.clone(), 1);

lightning/src/util/test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ fn get_dummy_channel_announcement(short_chan_id: u64) -> msgs::ChannelAnnounceme
385385
let node_1_btckey = SecretKey::from_slice(&[40; 32]).unwrap();
386386
let node_2_btckey = SecretKey::from_slice(&[39; 32]).unwrap();
387387
let unsigned_ann = msgs::UnsignedChannelAnnouncement {
388-
features: ChannelFeatures::known(),
388+
features: ChannelFeatures::empty(),
389389
chain_hash: genesis_block(network).header.block_hash(),
390390
short_channel_id: short_chan_id,
391391
node_id_1: PublicKey::from_secret_key(&secp_ctx, &node_1_privkey),

0 commit comments

Comments
 (0)