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
|
||||
pprint(p)
|
||||
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