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)["status"] == "confirmed"
|
||||
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