mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-23 17:14:22 +01:00
pytest: Add a test to reproduce #4258
This commit is contained in:
committed by
Rusty Russell
parent
e186b2620a
commit
71fafd23fd
@@ -1173,3 +1173,55 @@ def test_multiwithdraw_simple(node_factory, bitcoind):
|
|||||||
assert only_one(funds3)["address"] == addr3
|
assert only_one(funds3)["address"] == addr3
|
||||||
assert only_one(funds3)["status"] == "confirmed"
|
assert only_one(funds3)["status"] == "confirmed"
|
||||||
assert only_one(funds3)["amount_msat"] == amount3
|
assert only_one(funds3)["amount_msat"] == amount3
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipIf(
|
||||||
|
TEST_NETWORK == 'liquid-regtest',
|
||||||
|
'Blinded elementsd addresses are not recognized')
|
||||||
|
def test_repro_4258(node_factory, bitcoind):
|
||||||
|
"""Reproduces issue #4258, invalid output encoding for txprepare.
|
||||||
|
"""
|
||||||
|
l1 = node_factory.get_node()
|
||||||
|
addr = l1.rpc.newaddr()['bech32']
|
||||||
|
bitcoind.rpc.sendtoaddress(addr, 1)
|
||||||
|
bitcoind.generate_block(1)
|
||||||
|
|
||||||
|
wait_for(lambda: l1.rpc.listfunds()['outputs'] != [])
|
||||||
|
out = l1.rpc.listfunds()['outputs'][0]
|
||||||
|
|
||||||
|
addr = bitcoind.rpc.getnewaddress()
|
||||||
|
|
||||||
|
# Missing array parentheses for outputs
|
||||||
|
with pytest.raises(RpcError, match=r"Expected an array of outputs"):
|
||||||
|
l1.rpc.txprepare(
|
||||||
|
outputs="{addr}:all".format(addr=addr),
|
||||||
|
feerate="slow",
|
||||||
|
minconf=1,
|
||||||
|
utxos=["{txid}:{output}".format(**out)]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Missing parentheses on the utxos array
|
||||||
|
with pytest.raises(RpcError, match=r"Could not decode the outpoint array for utxos"):
|
||||||
|
l1.rpc.txprepare(
|
||||||
|
outputs=[{addr: "all"}],
|
||||||
|
feerate="slow",
|
||||||
|
minconf=1,
|
||||||
|
utxos="{txid}:{output}".format(**out)
|
||||||
|
)
|
||||||
|
|
||||||
|
tx = l1.rpc.txprepare(
|
||||||
|
outputs=[{addr: "all"}],
|
||||||
|
feerate="slow",
|
||||||
|
minconf=1,
|
||||||
|
utxos=["{txid}:{output}".format(**out)]
|
||||||
|
)
|
||||||
|
|
||||||
|
tx = bitcoind.rpc.decoderawtransaction(tx['unsigned_tx'])
|
||||||
|
|
||||||
|
assert(len(tx['vout']) == 1)
|
||||||
|
o0 = tx['vout'][0]
|
||||||
|
assert(o0['scriptPubKey']['addresses'] == [addr])
|
||||||
|
|
||||||
|
assert(len(tx['vin']) == 1)
|
||||||
|
i0 = tx['vin'][0]
|
||||||
|
assert([i0['txid'], i0['vout']] == [out['txid'], out['output']])
|
||||||
|
|||||||
Reference in New Issue
Block a user