@@ -165,9 +165,10 @@ impl NodeFeatures {
165
165
match i {
166
166
// Blank out initial_routing_sync (feature bits 2/3), gossip_queries (6/7),
167
167
// gossip_queries_ex (10/11), option_static_remotekey (12/13), and
168
- // payment_secret (14/15 )
168
+ // option_support_large_channel (16/17 )
169
169
0 => flags. push ( feature_byte & 0b00110011 ) ,
170
- 1 => flags. push ( feature_byte & 0b00000011 ) ,
170
+ 1 => flags. push ( feature_byte & 0b11000011 ) ,
171
+ 2 => flags. push ( feature_byte & 0b00000011 ) ,
171
172
_ => ( ) ,
172
173
}
173
174
}
@@ -299,15 +300,15 @@ impl<T: sealed::PaymentSecret> Features<T> {
299
300
// Note that we never need to test this since what really matters is the invoice - iff the
300
301
// invoice provides a payment_secret, we assume that we can use it (ie that the recipient
301
302
// supports payment_secret).
302
- pub ( crate ) fn payment_secret ( & self ) -> bool {
303
+ pub ( crate ) fn supports_payment_secret ( & self ) -> bool {
303
304
self . flags . len ( ) > 1 && ( self . flags [ 1 ] & ( 3 << ( 14 -8 ) ) ) != 0
304
305
}
305
306
}
306
307
307
308
impl < T : sealed:: BasicMPP > Features < T > {
308
309
// We currently never test for this since we don't actually *generate* multipath routes.
309
310
#[ allow( dead_code) ]
310
- pub ( crate ) fn basic_mpp ( & self ) -> bool {
311
+ pub ( crate ) fn supports_basic_mpp ( & self ) -> bool {
311
312
self . flags . len ( ) > 2 && ( self . flags [ 2 ] & ( 3 << ( 16 -8 * 2 ) ) ) != 0
312
313
}
313
314
}
@@ -356,6 +357,12 @@ mod tests {
356
357
assert ! ( InitFeatures :: supported( ) . supports_variable_length_onion( ) ) ;
357
358
assert ! ( NodeFeatures :: supported( ) . supports_variable_length_onion( ) ) ;
358
359
360
+ assert ! ( InitFeatures :: supported( ) . supports_payment_secret( ) ) ;
361
+ assert ! ( NodeFeatures :: supported( ) . supports_payment_secret( ) ) ;
362
+
363
+ assert ! ( InitFeatures :: supported( ) . supports_basic_mpp( ) ) ;
364
+ assert ! ( NodeFeatures :: supported( ) . supports_basic_mpp( ) ) ;
365
+
359
366
let mut init_features = InitFeatures :: supported ( ) ;
360
367
init_features. set_initial_routing_sync ( ) ;
361
368
assert ! ( !init_features. requires_unknown_bits( ) ) ;
@@ -382,10 +389,12 @@ mod tests {
382
389
383
390
{
384
391
// Check that the flags are as expected: optional_data_loss_protect,
385
- // option_upfront_shutdown_script, and var_onion_optin set.
392
+ // option_upfront_shutdown_script, var_onion_optin, payment_secret, and
393
+ // basic_mpp.
394
+ assert_eq ! ( res. flags. len( ) , 3 ) ;
386
395
assert_eq ! ( res. flags[ 0 ] , 0b00100010 ) ;
387
- assert_eq ! ( res. flags[ 1 ] , 0b00000010 ) ;
388
- assert_eq ! ( res. flags. len ( ) , 2 ) ;
396
+ assert_eq ! ( res. flags[ 1 ] , 0b10000010 ) ;
397
+ assert_eq ! ( res. flags[ 2 ] , 0b00000010 ) ;
389
398
}
390
399
391
400
// Check that the initial_routing_sync feature was correctly blanked out.
0 commit comments