Skip to content

Commit 8fef036

Browse files
committed
Add RouteBlinding feature flag
The RouteBlinding feature flag is signals support for relaying payments over blinded paths. It is used for paying BOLT 12 invoices, which are required to included at least one blinded path.
1 parent d6c4df3 commit 8fef036

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

lightning/src/ln/features.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
//! and HTLC transactions are pre-signed with zero fee (see
4646
//! [BOLT-3](https://github.com/lightning/bolts/blob/master/03-transactions.md) for more
4747
//! information).
48+
//! - `RouteBlinding` - requires/supports that a node can relay payments over blinded paths
49+
//! (see [BOLT-4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md#route-blinding) for more information).
4850
//! - `ShutdownAnySegwit` - requires/supports that future segwit versions are allowed in `shutdown`
4951
//! (see [BOLT-2](https://github.com/lightning/bolts/blob/master/02-peer-protocol.md) for more information).
5052
//! - `OnionMessages` - requires/supports forwarding onion messages
@@ -143,7 +145,7 @@ mod sealed {
143145
// Byte 2
144146
BasicMPP | Wumbo | AnchorsNonzeroFeeHtlcTx | AnchorsZeroFeeHtlcTx,
145147
// Byte 3
146-
ShutdownAnySegwit | Taproot,
148+
RouteBlinding | ShutdownAnySegwit | Taproot,
147149
// Byte 4
148150
OnionMessages,
149151
// Byte 5
@@ -159,7 +161,7 @@ mod sealed {
159161
// Byte 2
160162
BasicMPP | Wumbo | AnchorsNonzeroFeeHtlcTx | AnchorsZeroFeeHtlcTx,
161163
// Byte 3
162-
ShutdownAnySegwit | Taproot,
164+
RouteBlinding | ShutdownAnySegwit | Taproot,
163165
// Byte 4
164166
OnionMessages,
165167
// Byte 5
@@ -391,6 +393,9 @@ mod sealed {
391393
define_feature!(23, AnchorsZeroFeeHtlcTx, [InitContext, NodeContext, ChannelTypeContext],
392394
"Feature flags for `option_anchors_zero_fee_htlc_tx`.", set_anchors_zero_fee_htlc_tx_optional,
393395
set_anchors_zero_fee_htlc_tx_required, supports_anchors_zero_fee_htlc_tx, requires_anchors_zero_fee_htlc_tx);
396+
define_feature!(25, RouteBlinding, [InitContext, NodeContext],
397+
"Feature flags for `option_route_blinding`.", set_route_blinding_optional,
398+
set_route_blinding_required, supports_route_blinding, requires_route_blinding);
394399
define_feature!(27, ShutdownAnySegwit, [InitContext, NodeContext],
395400
"Feature flags for `opt_shutdown_anysegwit`.", set_shutdown_any_segwit_optional,
396401
set_shutdown_any_segwit_required, supports_shutdown_anysegwit, requires_shutdown_anysegwit);
@@ -1053,6 +1058,7 @@ mod tests {
10531058
init_features.set_basic_mpp_optional();
10541059
init_features.set_wumbo_optional();
10551060
init_features.set_anchors_zero_fee_htlc_tx_optional();
1061+
init_features.set_route_blinding_optional();
10561062
init_features.set_shutdown_any_segwit_optional();
10571063
init_features.set_onion_messages_optional();
10581064
init_features.set_channel_type_optional();
@@ -1069,15 +1075,15 @@ mod tests {
10691075
// - option_data_loss_protect (req)
10701076
// - var_onion_optin (req) | static_remote_key (req) | payment_secret(req)
10711077
// - basic_mpp | wumbo | option_anchors_zero_fee_htlc_tx
1072-
// - opt_shutdown_anysegwit
1078+
// - option_route_blinding | opt_shutdown_anysegwit
10731079
// - onion_messages
10741080
// - option_channel_type | option_scid_alias
10751081
// - option_zeroconf
10761082
assert_eq!(node_features.flags.len(), 7);
10771083
assert_eq!(node_features.flags[0], 0b00000001);
10781084
assert_eq!(node_features.flags[1], 0b01010001);
10791085
assert_eq!(node_features.flags[2], 0b10001010);
1080-
assert_eq!(node_features.flags[3], 0b00001000);
1086+
assert_eq!(node_features.flags[3], 0b00001010);
10811087
assert_eq!(node_features.flags[4], 0b10000000);
10821088
assert_eq!(node_features.flags[5], 0b10100000);
10831089
assert_eq!(node_features.flags[6], 0b00001000);

0 commit comments

Comments
 (0)