mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-21 14:24:09 +01:00
pytest: follow RBF txids properly, but ignoring identical "RBF" txs.
`mine_txid_or_rbf` uses is_in_log, which grabs the first line. Thus it doesn't track when a txid gets "RBF"ed by itself, such as: ``` DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-chan#1: RBF onchain txid 5df8474399e43c58cc45efb6acf1ae08fe678bea9a27d131628394a009cda361 (fee 122sat) with txid 5df8474399e43c58cc45efb6acf1ae08fe678bea9a27d131628394a009cda361 (fee 122sat) ... INFO 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-chan#1: RBF onchain txid 5df8474399e43c58cc45efb6acf1ae08fe678bea9a27d131628394a009cda361 (fee 122sat) with txid 044a564a2b6f8c7c212246e4973a303d24ce0dcd31c470a9ea272f314cf6a4ce (fee 3630sat) ... DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-chan#1: RBF onchain txid 044a564a2b6f8c7c212246e4973a303d24ce0dcd31c470a9ea272f314cf6a4ce (fee 3630sat) with txid 044a564a2b6f8c7c212246e4973a303d24ce0dcd31c470a9ea272f314cf6a4ce (fee 3630sat) ... DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-chan#1: RBF onchain txid 044a564a2b6f8c7c212246e4973a303d24ce0dcd31c470a9ea272f314cf6a4ce (fee 3630sat) with txid 044a564a2b6f8c7c212246e4973a303d24ce0dcd31c470a9ea272f314cf6a4ce (fee 3630sat) ``` The simplest fix is to only use INFO lines, which are printed when we actually increase fee. ``` def test_onchaind_replay(node_factory, bitcoind): ... # l1 should still notice that the funding was spent and that we should react to it _, txid, blocks = l1.wait_for_onchaind_tx('OUR_DELAYED_RETURN_TO_WALLET', 'OUR_UNILATERAL/DELAYED_OUTPUT_TO_US') assert blocks == 200 bitcoind.generate_block(200) # Could be RBF! > l1.mine_txid_or_rbf(txid) tests/test_closing.py:1860: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ contrib/pyln-testing/pyln/testing/utils.py:1292: in mine_txid_or_rbf wait_for(lambda: rbf_or_txid_broadcast(txids)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ success = <function LightningNode.mine_txid_or_rbf.<locals>.<lambda> at 0x7f5d55f770d0> timeout = 180 def wait_for(success, timeout=TIMEOUT): start_time = time.time() interval = 0.25 while not success(): time_left = start_time + timeout - time.time() if time_left <= 0: > raise ValueError("Timeout while waiting for {}".format(success)) E ValueError: Timeout while waiting for <function LightningNode.mine_txid_or_rbf.<locals>.<lambda> at 0x7f5d55f770d0> ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
e39fe41ff0
commit
f51ce7be85
1 changed files with 2 additions and 1 deletions
|
@ -1281,7 +1281,8 @@ class LightningNode(object):
|
|||
# Hack so we can mutate the txid: pass it in a list
|
||||
def rbf_or_txid_broadcast(txids):
|
||||
# RBF onchain txid d4b597505b543a4b8b42ab4d481fd7a533febb7e7df150ca70689e6d046612f7 (fee 6564sat) with txid 979878b8f855d3895d1cd29bd75a60b21492c4842e38099186a8e649bee02c7c (fee 8205sat)
|
||||
line = self.daemon.is_in_log("RBF (onchain|HTLC) txid {}".format(txids[-1]))
|
||||
# We can have noop RBFs: ignore those (increases are logged INFO level)
|
||||
line = self.daemon.is_in_log(" INFO .*RBF (onchain|HTLC) txid {}".format(txids[-1]))
|
||||
if line is not None:
|
||||
newtxid = re.search(r'with txid ([0-9a-fA-F]*)', line).group(1)
|
||||
txids.append(newtxid)
|
||||
|
|
Loading…
Add table
Reference in a new issue