-
- #[test]
- fn sanity_test_known_features() {
- assert!(!ChannelFeatures::known().requires_unknown_bits());
- assert!(!ChannelFeatures::known().supports_unknown_bits());
- assert!(!InitFeatures::known().requires_unknown_bits());
- assert!(!InitFeatures::known().supports_unknown_bits());
- assert!(!NodeFeatures::known().requires_unknown_bits());
- assert!(!NodeFeatures::known().supports_unknown_bits());
-
- assert!(InitFeatures::known().supports_upfront_shutdown_script());
- assert!(NodeFeatures::known().supports_upfront_shutdown_script());
- assert!(!InitFeatures::known().requires_upfront_shutdown_script());
- assert!(!NodeFeatures::known().requires_upfront_shutdown_script());
-
- assert!(InitFeatures::known().supports_gossip_queries());
- assert!(NodeFeatures::known().supports_gossip_queries());
- assert!(!InitFeatures::known().requires_gossip_queries());
- assert!(!NodeFeatures::known().requires_gossip_queries());
-
- assert!(InitFeatures::known().supports_data_loss_protect());
- assert!(NodeFeatures::known().supports_data_loss_protect());
- assert!(!InitFeatures::known().requires_data_loss_protect());
- assert!(!NodeFeatures::known().requires_data_loss_protect());
-
- assert!(InitFeatures::known().supports_variable_length_onion());
- assert!(NodeFeatures::known().supports_variable_length_onion());
- assert!(InvoiceFeatures::known().supports_variable_length_onion());
- assert!(InitFeatures::known().requires_variable_length_onion());
- assert!(NodeFeatures::known().requires_variable_length_onion());
- assert!(InvoiceFeatures::known().requires_variable_length_onion());
-
- assert!(InitFeatures::known().supports_static_remote_key());
- assert!(NodeFeatures::known().supports_static_remote_key());
- assert!(InitFeatures::known().requires_static_remote_key());
- assert!(NodeFeatures::known().requires_static_remote_key());
-
- assert!(InitFeatures::known().supports_payment_secret());
- assert!(NodeFeatures::known().supports_payment_secret());
- assert!(InvoiceFeatures::known().supports_payment_secret());
- assert!(InitFeatures::known().requires_payment_secret());
- assert!(NodeFeatures::known().requires_payment_secret());
- assert!(InvoiceFeatures::known().requires_payment_secret());
-
- assert!(InitFeatures::known().supports_basic_mpp());
- assert!(NodeFeatures::known().supports_basic_mpp());
- assert!(InvoiceFeatures::known().supports_basic_mpp());
- assert!(!InitFeatures::known().requires_basic_mpp());
- assert!(!NodeFeatures::known().requires_basic_mpp());
- assert!(!InvoiceFeatures::known().requires_basic_mpp());
-
- assert!(InitFeatures::known().supports_channel_type());
- assert!(NodeFeatures::known().supports_channel_type());
- assert!(!InitFeatures::known().requires_channel_type());
- assert!(!NodeFeatures::known().requires_channel_type());
-
- assert!(InitFeatures::known().supports_shutdown_anysegwit());
- assert!(NodeFeatures::known().supports_shutdown_anysegwit());
-
- assert!(InitFeatures::known().supports_scid_privacy());
- assert!(NodeFeatures::known().supports_scid_privacy());
- assert!(ChannelTypeFeatures::known().supports_scid_privacy());
- assert!(!InitFeatures::known().requires_scid_privacy());
- assert!(!NodeFeatures::known().requires_scid_privacy());
- assert!(ChannelTypeFeatures::known().requires_scid_privacy());
-
- assert!(InitFeatures::known().supports_wumbo());
- assert!(NodeFeatures::known().supports_wumbo());
- assert!(!InitFeatures::known().requires_wumbo());
- assert!(!NodeFeatures::known().requires_wumbo());
-
- assert!(InitFeatures::known().supports_onion_messages());
- assert!(NodeFeatures::known().supports_onion_messages());
- assert!(!InitFeatures::known().requires_onion_messages());
- assert!(!NodeFeatures::known().requires_onion_messages());
-
- assert!(InitFeatures::known().supports_zero_conf());
- assert!(!InitFeatures::known().requires_zero_conf());
- assert!(NodeFeatures::known().supports_zero_conf());
- assert!(!NodeFeatures::known().requires_zero_conf());
- assert!(ChannelTypeFeatures::known().supports_zero_conf());
- assert!(ChannelTypeFeatures::known().requires_zero_conf());
-
- let mut init_features = InitFeatures::known();
- assert!(init_features.initial_routing_sync());
- init_features = init_features.clear_initial_routing_sync();
- assert!(!init_features.initial_routing_sync());
- }