mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-23 17:14:22 +01:00
tests/test_pay.py: Replicate #3855.
This commit is contained in:
committed by
Rusty Russell
parent
47002af369
commit
9b4fd11e98
@@ -3155,3 +3155,41 @@ def test_mpp_adaptive(node_factory, bitcoind):
|
|||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
pprint(p)
|
pprint(p)
|
||||||
pprint(l1.rpc.paystatus(inv))
|
pprint(l1.rpc.paystatus(inv))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.xfail(strict=True)
|
||||||
|
def test_pay_fail_unconfirmed_channel(node_factory, bitcoind):
|
||||||
|
'''
|
||||||
|
Replicate #3855.
|
||||||
|
`pay` crash when any direct channel is still
|
||||||
|
unconfirmed.
|
||||||
|
'''
|
||||||
|
l1, l2 = node_factory.get_nodes(2)
|
||||||
|
|
||||||
|
amount_sat = 10 ** 6
|
||||||
|
|
||||||
|
# create l2->l1 channel.
|
||||||
|
l2.fundwallet(amount_sat * 5)
|
||||||
|
l1.rpc.connect(l2.info['id'], 'localhost', l2.port)
|
||||||
|
l2.rpc.fundchannel(l1.info['id'], amount_sat * 3)
|
||||||
|
# channel is still unconfirmed.
|
||||||
|
|
||||||
|
# Attempt to pay from l1 to l2.
|
||||||
|
# This should fail since the channel capacities are wrong.
|
||||||
|
invl2 = l2.rpc.invoice(Millisatoshi(amount_sat * 1000), 'i', 'i')['bolt11']
|
||||||
|
with pytest.raises(RpcError):
|
||||||
|
l1.rpc.pay(invl2)
|
||||||
|
|
||||||
|
# Let the channel confirm.
|
||||||
|
bitcoind.generate_block(6)
|
||||||
|
sync_blockheight(bitcoind, [l1, l2])
|
||||||
|
|
||||||
|
# Now give enough capacity so l1 can pay.
|
||||||
|
invl1 = l1.rpc.invoice(Millisatoshi(amount_sat * 2 * 1000), 'j', 'j')['bolt11']
|
||||||
|
l2.rpc.pay(invl1)
|
||||||
|
|
||||||
|
# Wait for us to recognize that the channel is available
|
||||||
|
wait_for(lambda: l1.rpc.listpeers()['peers'][0]['channels'][0]['spendable_msat'].millisatoshis > amount_sat * 1000)
|
||||||
|
|
||||||
|
# Now l1 can pay to l2.
|
||||||
|
l1.rpc.pay(invl2)
|
||||||
|
|||||||
Reference in New Issue
Block a user