From eab7fcf8e59e194451b86db5413453172b17bd78 Mon Sep 17 00:00:00 2001 From: niftynei Date: Wed, 9 Sep 2020 17:39:34 -0500 Subject: [PATCH] test_utxopsbt: account for fee output diff when elements --- tests/test_wallet.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/test_wallet.py b/tests/test_wallet.py index f47ae4103..e9eedbc64 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -534,7 +534,7 @@ def test_fundpsbt(node_factory, bitcoind, chainparams): l1.rpc.fundpsbt(amount // 2, feerate, 0) -def test_utxopsbt(node_factory, bitcoind): +def test_utxopsbt(node_factory, bitcoind, chainparams): amount = 1000000 l1 = node_factory.get_node() @@ -550,7 +550,8 @@ def test_utxopsbt(node_factory, bitcoind): bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == len(outputs)) - feerate = '7500perkw' + fee_val = 7500 + feerate = '{}perkw'.format(fee_val) # Explicitly spend the first output above. funding = l1.rpc.utxopsbt(amount // 2, feerate, 0, @@ -568,13 +569,19 @@ def test_utxopsbt(node_factory, bitcoind): assert 'reservations' not in funding # This should add 99 to the weight, but otherwise be identical except for locktime. - funding2 = l1.rpc.utxopsbt(amount // 2, feerate, 99, + start_weight = 99 + funding2 = l1.rpc.utxopsbt(amount // 2, feerate, start_weight, ['{}:{}'.format(outputs[0][0], outputs[0][1])], reserve=False, locktime=bitcoind.rpc.getblockcount() + 1) psbt2 = bitcoind.rpc.decodepsbt(funding2['psbt']) assert psbt2['tx']['locktime'] == bitcoind.rpc.getblockcount() + 1 assert psbt2['tx']['vin'] == psbt['tx']['vin'] - assert psbt2['tx']['vout'] == psbt['tx']['vout'] + if chainparams['elements']: + # elements includes the fee as an output + addl_fee = Millisatoshi(fee_val * start_weight // 1000 * 1000) + assert psbt2['tx']['vout'][0]['value'] == psbt['tx']['vout'][0]['value'] + addl_fee.to_btc() + else: + assert psbt2['tx']['vout'] == psbt['tx']['vout'] assert funding2['excess_msat'] < funding['excess_msat'] assert funding2['feerate_per_kw'] == 7500 assert funding2['estimated_final_weight'] == funding['estimated_final_weight'] + 99