Skip to content

Commit

Permalink
lightningd: option_shutdown_anysegwit is no longer experimental.
Browse files Browse the repository at this point in the history
lightning/bolts#672 was merged.

Signed-off-by: Rusty Russell <[email protected]>
Changelog-Added: Protocol: `option_shutdown_anysegwit` allows future segwit versions on shutdown transactions.
  • Loading branch information
rustyrussell committed May 26, 2021
1 parent 1e1a74f commit 0a7be96
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 20 deletions.
2 changes: 0 additions & 2 deletions common/features.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,10 @@ static const struct feature_style feature_styles[] = {
[NODE_ANNOUNCE_FEATURE] = FEATURE_REPRESENT,
[BOLT11_FEATURE] = FEATURE_REPRESENT,
[CHANNEL_FEATURE] = FEATURE_DONT_REPRESENT} },
#if EXPERIMENTAL_FEATURES
{ OPT_SHUTDOWN_ANYSEGWIT,
.copy_style = { [INIT_FEATURE] = FEATURE_REPRESENT,
[NODE_ANNOUNCE_FEATURE] = FEATURE_REPRESENT,
[CHANNEL_FEATURE] = FEATURE_DONT_REPRESENT } },
#endif
};

struct dependency {
Expand Down
2 changes: 1 addition & 1 deletion lightningd/lightningd.c
Original file line number Diff line number Diff line change
Expand Up @@ -802,10 +802,10 @@ static struct feature_set *default_features(const tal_t *ctx)
OPTIONAL_FEATURE(OPT_BASIC_MPP),
OPTIONAL_FEATURE(OPT_GOSSIP_QUERIES_EX),
OPTIONAL_FEATURE(OPT_STATIC_REMOTEKEY),
OPTIONAL_FEATURE(OPT_SHUTDOWN_ANYSEGWIT),
#if EXPERIMENTAL_FEATURES
OPTIONAL_FEATURE(OPT_ANCHOR_OUTPUTS),
OPTIONAL_FEATURE(OPT_ONION_MESSAGES),
OPTIONAL_FEATURE(OPT_SHUTDOWN_ANYSEGWIT),
#endif
};

Expand Down
15 changes: 4 additions & 11 deletions tests/test_closing.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from utils import (
only_one, sync_blockheight, wait_for, TIMEOUT,
account_balance, first_channel_id, basic_fee, TEST_NETWORK,
EXPERIMENTAL_FEATURES, scriptpubkey_addr
scriptpubkey_addr
)

import os
Expand Down Expand Up @@ -2659,15 +2659,8 @@ def test_segwit_shutdown_script(node_factory, bitcoind, executor):
else:
valid = edge_valid + other_valid

if EXPERIMENTAL_FEATURES:
xsuccess = valid
xfail = invalid
else:
xsuccess = []
xfail = valid + invalid

# More efficient to create them all up-front.
nodes = node_factory.get_nodes(len(xfail) + len(xsuccess))
nodes = node_factory.get_nodes(len(valid) + len(invalid))

# Give it one UTXO to spend for each node.
addresses = {}
Expand All @@ -2680,7 +2673,7 @@ def test_segwit_shutdown_script(node_factory, bitcoind, executor):
# FIXME: Since we don't support other non-v0 encodings, we need a protocol
# test for this (we're actually testing our upfront check, not the real
# shutdown one!),
for script in xsuccess:
for script in valid:
# Insist on upfront script we're not going to match.
l1.stop()
l1.daemon.env["DEV_OPENINGD_UPFRONT_SHUTDOWN_SCRIPT"] = script
Expand All @@ -2690,7 +2683,7 @@ def test_segwit_shutdown_script(node_factory, bitcoind, executor):
l1.rpc.connect(l2.info['id'], 'localhost', l2.port)
l1.rpc.fundchannel(l2.info['id'], 10**6)

for script in xfail:
for script in invalid:
# Insist on upfront script we're not going to match.
l1.stop()
l1.daemon.env["DEV_OPENINGD_UPFRONT_SHUTDOWN_SCRIPT"] = script
Expand Down
2 changes: 2 additions & 0 deletions tests/test_misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -1897,6 +1897,8 @@ def test_list_features_only(node_factory):
expected += ['option_anchor_outputs/odd']
expected += ['option_shutdown_anysegwit/odd']
expected += ['option_onion_messages/odd']
else:
expected += ['option_shutdown_anysegwit/odd']
assert features == expected


Expand Down
8 changes: 2 additions & 6 deletions tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,12 @@ def hex_bits(features):

def expected_peer_features(wumbo_channels=False, extra=[]):
"""Return the expected peer features hexstring for this configuration"""
features = [1, 5, 7, 9, 11, 13, 15, 17]
features = [1, 5, 7, 9, 11, 13, 15, 17, 27]
if EXPERIMENTAL_FEATURES:
# OPT_ONION_MESSAGES
features += [103]
# option_anchor_outputs
features += [21]
# option_shutdown_anysegwit
features += [27]
if wumbo_channels:
features += [19]
if EXPERIMENTAL_DUAL_FUND:
Expand All @@ -42,14 +40,12 @@ def expected_peer_features(wumbo_channels=False, extra=[]):
# features for the 'node' and the 'peer' feature sets
def expected_node_features(wumbo_channels=False, extra=[]):
"""Return the expected node features hexstring for this configuration"""
features = [1, 5, 7, 9, 11, 13, 15, 17, 55]
features = [1, 5, 7, 9, 11, 13, 15, 17, 27, 55]
if EXPERIMENTAL_FEATURES:
# OPT_ONION_MESSAGES
features += [103]
# option_anchor_outputs
features += [21]
# option_shutdown_anysegwit
features += [27]
if wumbo_channels:
features += [19]
if EXPERIMENTAL_DUAL_FUND:
Expand Down

0 comments on commit 0a7be96

Please sign in to comment.