mirror of
https://github.com/aljazceru/lightning.git
synced 2026-02-02 20:54:23 +01:00
pytest: make dual-funding tests using option_anchors_zero_fee_htlc_tx.
They used to force option_anchor_outputs, so switch them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user