Skip to content

Commit 9152b8c

Browse files
committed
pytest: fix test_multifunding_feerates
There's a 1 in 256 chance that our signature on the transaction is 70, not 71 bytes long. This changes the freerate. So fix up the weight in this case, to be the expected weight. ``` @unittest.skipIf(TEST_NETWORK == 'liquid-regtest', "Fees on elements are different") @pytest.mark.developer("uses dev-fail") @pytest.mark.openchannel('v1') # v2 the weight calculation is off by 3 deftest_multifunding_feerates(node_factory, bitcoind): ''' Test feerate parameters for multifundchannel ''' funding_tx_feerate = '10000perkw' commitment_tx_feerate_int = 2000 commitment_tx_feerate = str(commitment_tx_feerate_int) + 'perkw' l1, l2, l3 = node_factory.get_nodes(3, opts={'log-level': 'debug'}) l1.fundwallet(1 << 26) def_connect_str(node): return'{}@localhost:{}'.format(node.info['id'], node.port) destinations = [{"id": _connect_str(l2), 'amount': 50000}] res = l1.rpc.multifundchannel(destinations, feerate=funding_tx_feerate, commitment_feerate=commitment_tx_feerate) entry = bitcoind.rpc.getmempoolentry(res['txid']) weight = entry['weight'] expected_fee = int(funding_tx_feerate[:-5]) * weight // 1000 > assert expected_fee == entry['fees']['base'] * 10 ** 8 E AssertionError: assert 7000 == (Decimal('0.00007010') * (10 ** 8)) tests/test_connection.py:1982: AssertionError ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
1 parent 2569999 commit 9152b8c

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

tests/test_connection.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1978,6 +1978,9 @@ def _connect_str(node):
19781978
entry = bitcoind.rpc.getmempoolentry(res['txid'])
19791979
weight = entry['weight']
19801980

1981+
# If signature is unexpectedly short, we get a spurious failure here!
1982+
res = bitcoind.rpc.decoderawtransaction(res['tx'])
1983+
weight += 71 - len(res['vin'][0]['txinwitness'][0]) // 2
19811984
expected_fee = int(funding_tx_feerate[:-5]) * weight // 1000
19821985
assert expected_fee == entry['fees']['base'] * 10 ** 8
19831986

0 commit comments

Comments
 (0)