diff --git a/tests/test_bookkeeper.py b/tests/test_bookkeeper.py index 4e7681752..5598e0242 100644 --- a/tests/test_bookkeeper.py +++ b/tests/test_bookkeeper.py @@ -4,8 +4,7 @@ from pyln.client import Millisatoshi from db import Sqlite3Db from fixtures import TEST_NETWORK from utils import ( - sync_blockheight, wait_for, only_one, first_channel_id, TIMEOUT, - anchor_expected + sync_blockheight, wait_for, only_one, first_channel_id, TIMEOUT ) from pathlib import Path @@ -337,7 +336,6 @@ def test_bookkeeping_rbf_withdraw(node_factory, bitcoind): @pytest.mark.openchannel('v2') @unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "turns off bookkeeper at start") @unittest.skipIf(TEST_NETWORK != 'regtest', "network fees hardcoded") -@pytest.mark.developer("dev-force-features") def test_bookkeeping_missed_chans_leases(node_factory, bitcoind): """ Test that a lease is correctly recorded if bookkeeper was off @@ -347,10 +345,8 @@ def test_bookkeeping_missed_chans_leases(node_factory, bitcoind): opts = {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'plugin': str(coin_mvt_plugin), - 'disable-plugin': 'bookkeeper'} - - if not anchor_expected(): - opts['dev-force-features'] = '+21' + 'disable-plugin': 'bookkeeper', + 'experimental-anchors': None} l1, l2 = node_factory.get_nodes(2, opts=opts) diff --git a/tests/test_closing.py b/tests/test_closing.py index 7255752db..2928d83a9 100644 --- a/tests/test_closing.py +++ b/tests/test_closing.py @@ -738,20 +738,18 @@ def test_penalty_outhtlc(node_factory, bitcoind, executor, chainparams): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') @pytest.mark.slow_test -@pytest.mark.developer("requres 'dev-queryrates', 'dev-force-features'") +@pytest.mark.developer("requres 'dev-queryrates'") def test_channel_lease_falls_behind(node_factory, bitcoind): ''' If our peer falls too far behind/doesn't send us an update for their blockheight, the lessor fails the channel ''' opts = [{'funder-policy': 'match', 'funder-policy-mod': 100, - 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100}, + 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, + 'experimental-anchors': None}, {'funder-policy': 'match', 'funder-policy-mod': 100, - 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100}] - - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' + 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, + 'experimental-anchors': None}] l1, l2, = node_factory.get_nodes(2, opts=opts) amount = 500000 @@ -781,7 +779,7 @@ def test_channel_lease_falls_behind(node_factory, bitcoind): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') -@pytest.mark.developer("requres 'dev-queryrates', 'dev-force-features'") +@pytest.mark.developer("requres 'dev-queryrates'") @pytest.mark.slow_test def test_channel_lease_post_expiry(node_factory, bitcoind, chainparams): @@ -789,10 +787,8 @@ def test_channel_lease_post_expiry(node_factory, bitcoind, chainparams): opts = {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'may_reconnect': True, 'plugin': coin_mvt_plugin, - 'dev-no-reconnect': None} - - if not anchor_expected(): - opts['dev-force-features'] = '+21' + 'dev-no-reconnect': None, + 'experimental-anchors': None} l1, l2, = node_factory.get_nodes(2, opts=opts) @@ -886,7 +882,7 @@ def test_channel_lease_post_expiry(node_factory, bitcoind, chainparams): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') @pytest.mark.slow_test -@pytest.mark.developer("requres 'dev-queryrates', 'dev-force-features'") +@pytest.mark.developer("requres 'dev-queryrates'") def test_channel_lease_unilat_closes(node_factory, bitcoind): ''' Check that channel leases work @@ -896,10 +892,8 @@ def test_channel_lease_unilat_closes(node_factory, bitcoind): ''' opts = {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, - 'funder-lease-requests-only': False} - - if not anchor_expected(): - opts['dev-force-features'] = '+21' + 'funder-lease-requests-only': False, + 'experimental-anchors': None} l1, l2, l3 = node_factory.get_nodes(3, opts=opts) # Allow l2 some warnings @@ -1001,7 +995,7 @@ def test_channel_lease_unilat_closes(node_factory, bitcoind): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') @unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "Makes use of the sqlite3 db") -@pytest.mark.developer("requres 'dev-queryrates', 'dev-force-features'") +@pytest.mark.developer("requres 'dev-queryrates'") def test_channel_lease_lessor_cheat(node_factory, bitcoind, chainparams): ''' Check that lessee can recover funds if lessor cheats @@ -1010,16 +1004,14 @@ def test_channel_lease_lessor_cheat(node_factory, bitcoind, chainparams): opts = [{'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'may_reconnect': True, 'allow_warning': True, + 'experimental-anchors': None, 'plugin': balance_snaps}, {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'may_reconnect': True, 'allow_broken_log': True, + 'experimental-anchors': None, 'plugin': balance_snaps}] - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' - l1, l2, = node_factory.get_nodes(2, opts=opts) amount = 500000 feerate = 2000 @@ -1080,7 +1072,7 @@ def test_channel_lease_lessor_cheat(node_factory, bitcoind, chainparams): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') @unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "Makes use of the sqlite3 db") -@pytest.mark.developer("requres 'dev-queryrates', dev-no-reconnect, dev-force-features") +@pytest.mark.developer("requres 'dev-queryrates', dev-no-reconnect") def test_channel_lease_lessee_cheat(node_factory, bitcoind, chainparams): ''' Check that lessor can recover funds if lessee cheats @@ -1088,14 +1080,12 @@ def test_channel_lease_lessee_cheat(node_factory, bitcoind, chainparams): opts = [{'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'may_reconnect': True, 'dev-no-reconnect': None, - 'allow_broken_log': True}, + 'allow_broken_log': True, + 'experimental-anchors': None}, {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, - 'may_reconnect': True, 'dev-no-reconnect': None}] - - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' + 'may_reconnect': True, 'dev-no-reconnect': None, + 'experimental-anchors': None}] l1, l2, = node_factory.get_nodes(2, opts=opts) amount = 500000 diff --git a/tests/test_opening.py b/tests/test_opening.py index 8034d54d5..4171b02ff 100644 --- a/tests/test_opening.py +++ b/tests/test_opening.py @@ -22,10 +22,8 @@ def find_next_feerate(node, peer): @pytest.mark.developer("requres 'dev-queryrates' + 'dev-force-features'") def test_queryrates(node_factory, bitcoind): - opts = {'dev-no-reconnect': None} - - if not anchor_expected(): - opts['dev-force-features'] = '+21' + opts = {'dev-no-reconnect': None, + 'experimental-anchors': None} l1, l2 = node_factory.get_nodes(2, opts=opts) @@ -382,16 +380,13 @@ def test_v2_rbf_single(node_factory, bitcoind, chainparams): @unittest.skipIf(TEST_NETWORK != 'regtest', 'elementsd doesnt yet support PSBT features we need') @pytest.mark.openchannel('v2') -@pytest.mark.developer("requres 'dev-force-features'") def test_v2_rbf_liquidity_ad(node_factory, bitcoind, chainparams): opts = {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, + 'experimental-anchors': None, 'may_reconnect': True} - if not anchor_expected(): - opts['dev-force-features'] = '+21' - l1, l2 = node_factory.get_nodes(2, opts=opts) # what happens when we RBF? @@ -1266,21 +1261,19 @@ def test_funder_contribution_limits(node_factory, bitcoind): @pytest.mark.openchannel('v2') -@pytest.mark.developer("requres 'dev-disconnect', 'dev-force-features'") +@pytest.mark.developer("requres 'dev-disconnect'") def test_inflight_dbload(node_factory, bitcoind): """Bad db field access breaks Postgresql on startup with opening leases""" disconnects = ["@WIRE_COMMITMENT_SIGNED"] opts = [{'experimental-dual-fund': None, 'dev-no-reconnect': None, - 'may_reconnect': True, 'disconnect': disconnects}, + 'may_reconnect': True, 'disconnect': disconnects, + 'experimental-anchors': None}, {'experimental-dual-fund': None, 'dev-no-reconnect': None, 'may_reconnect': True, 'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', - 'lease-fee-basis': 100}] - - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' + 'lease-fee-basis': 100, + 'experimental-anchors': None}] l1, l2 = node_factory.get_nodes(2, opts=opts) @@ -1578,7 +1571,6 @@ def test_buy_liquidity_ad_no_v2(node_factory, bitcoind): @pytest.mark.openchannel('v2') -@pytest.mark.developer("dev-force-features required") def test_v2_replay_bookkeeping(node_factory, bitcoind): """ Test that your bookkeeping for a liquidity ad is good even if we replay the opening and locking tx! @@ -1586,14 +1578,12 @@ def test_v2_replay_bookkeeping(node_factory, bitcoind): opts = [{'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, - 'rescan': 10, 'funding-confirms': 6, 'may_reconnect': True}, + 'rescan': 10, 'funding-confirms': 6, 'may_reconnect': True, + 'experimental-anchors': None}, {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, - 'may_reconnect': True}] - - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' + 'may_reconnect': True, + 'experimental-anchors': None}] l1, l2, = node_factory.get_nodes(2, opts=opts) amount = 500000 @@ -1645,21 +1635,18 @@ def test_v2_replay_bookkeeping(node_factory, bitcoind): @pytest.mark.openchannel('v2') -@pytest.mark.developer("dev-force-features required") def test_buy_liquidity_ad_check_bookkeeping(node_factory, bitcoind): """ Test that your bookkeeping for a liquidity ad is good.""" opts = [{'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'rescan': 10, 'disable-plugin': 'bookkeeper', - 'funding-confirms': 6, 'may_reconnect': True}, + 'funding-confirms': 6, 'may_reconnect': True, + 'experimental-anchors': None}, {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, - 'may_reconnect': True}] - - if not anchor_expected(): - for opt in opts: - opt['dev-force-features'] = '+21' + 'may_reconnect': True, + 'experimental-anchors': None}] l1, l2, = node_factory.get_nodes(2, opts=opts) amount = 500000 @@ -2141,17 +2128,17 @@ def test_openchannel_no_unconfirmed_inputs_accepter(node_factory, bitcoind): @unittest.skip("anchors not available") -@pytest.mark.developer("dev-force-features, dev-queryrates required") +@pytest.mark.developer("dev-queryrates required") @pytest.mark.openchannel('v2') def test_no_anchor_liquidity_ads(node_factory, bitcoind): """ Liquidity ads requires anchors, which are no longer a requirement for dual-funded channels. """ - l1_opts = {'funder-policy': 'match', 'funder-policy-mod': 100, + l2_opts = {'funder-policy': 'match', 'funder-policy-mod': 100, 'lease-fee-base-sat': '100sat', 'lease-fee-basis': 100, 'may_reconnect': True, 'funder-lease-requests-only': False} - l2_opts = l1_opts.copy() - l2_opts['dev-force-features'] = ["-21"] + l1_opts = l2_opts.copy() + l1_opts['experimental-anchors'] = None l1, l2 = node_factory.get_nodes(2, opts=[l1_opts, l2_opts]) feerate = 2000