Set payment_secret to required in features flags
authorMatt Corallo <git@bluematt.me>
Thu, 22 Apr 2021 18:54:53 +0000 (18:54 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 27 Apr 2021 23:40:33 +0000 (23:40 +0000)
lightning/src/ln/features.rs

index 36f29ada14e4609709777d3594a3cfc9b7c2dd7a..dd6ac3307f88d1c14a97a7874e1de2556d87696b 100644 (file)
@@ -95,7 +95,7 @@ mod sealed {
                        // Byte 0
                        ,
                        // Byte 1
-                       StaticRemoteKey,
+                       StaticRemoteKey | PaymentSecret,
                        // Byte 2
                        ,
                        // Byte 3
@@ -105,7 +105,7 @@ mod sealed {
                        // Byte 0
                        DataLossProtect | InitialRoutingSync | UpfrontShutdownScript | GossipQueries,
                        // Byte 1
-                       VariableLengthOnion | PaymentSecret,
+                       VariableLengthOnion,
                        // Byte 2
                        BasicMPP,
                        // Byte 3
@@ -117,7 +117,7 @@ mod sealed {
                        // Byte 0
                        ,
                        // Byte 1
-                       StaticRemoteKey,
+                       StaticRemoteKey | PaymentSecret,
                        // Byte 2
                        ,
                        // Byte 3
@@ -127,7 +127,7 @@ mod sealed {
                        // Byte 0
                        DataLossProtect | UpfrontShutdownScript | GossipQueries,
                        // Byte 1
-                       VariableLengthOnion | PaymentSecret,
+                       VariableLengthOnion,
                        // Byte 2
                        BasicMPP,
                        // Byte 3
@@ -139,12 +139,19 @@ mod sealed {
                optional_features: [],
        });
        define_context!(InvoiceContext {
-               required_features: [,,,],
+               required_features: [
+                       // Byte 0
+                       ,
+                       // Byte 1
+                       PaymentSecret,
+                       // Byte 2
+                       ,
+               ],
                optional_features: [
                        // Byte 0
                        ,
                        // Byte 1
-                       VariableLengthOnion | PaymentSecret,
+                       VariableLengthOnion,
                        // Byte 2
                        BasicMPP,
                ],
@@ -732,8 +739,8 @@ mod tests {
 
                assert!(InitFeatures::known().supports_payment_secret());
                assert!(NodeFeatures::known().supports_payment_secret());
-               assert!(!InitFeatures::known().requires_payment_secret());
-               assert!(!NodeFeatures::known().requires_payment_secret());
+               assert!(InitFeatures::known().requires_payment_secret());
+               assert!(NodeFeatures::known().requires_payment_secret());
 
                assert!(InitFeatures::known().supports_basic_mpp());
                assert!(NodeFeatures::known().supports_basic_mpp());
@@ -779,12 +786,12 @@ mod tests {
                {
                        // Check that the flags are as expected:
                        // - option_data_loss_protect
-                       // - var_onion_optin | static_remote_key (req) | payment_secret
+                       // - var_onion_optin | static_remote_key (req) | payment_secret(req)
                        // - basic_mpp
                        // - opt_shutdown_anysegwit
                        assert_eq!(node_features.flags.len(), 4);
                        assert_eq!(node_features.flags[0], 0b00000010);
-                       assert_eq!(node_features.flags[1], 0b10010010);
+                       assert_eq!(node_features.flags[1], 0b01010010);
                        assert_eq!(node_features.flags[2], 0b00000010);
                        assert_eq!(node_features.flags[3], 0b00001000);
                }