mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-18 15:12:41 +02:00
Merge bitcoin/bitcoin#22809: test: Check that non-signaling BIP125 tx can be replaced via parent
fa2e9de59f
test: Check that non-signaling BIP125 tx can be replaced via parent (MarcoFalke) Pull request description: While `optout_child_tx` in the `test_no_inherited_signaling` test is reported as "bip125-replaceable", it is not *directly* replaceable. For example by bumping the fee of `optout_child_tx`. However, it is still replaceable *indirectly* via it's BIP-125 signalling parent. Clarify this by extending the test. ACKs for top commit: mjdietzx: Tested ACKfa2e9de59f
josibake: ACKfa2e9de59f
Tree-SHA512: b3608beae743dcb6152df4d2cfe1c0af6b4404ba3837f73e1d1431bd7c637f0c7fab0379aaab2218d5cd63e71070a079c0595ec031056058e8d3c933c2bae0a9
This commit is contained in:
@ -618,6 +618,17 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||||||
assert_equal(True, self.nodes[0].getmempoolentry(optin_parent_tx['txid'])['bip125-replaceable'])
|
assert_equal(True, self.nodes[0].getmempoolentry(optin_parent_tx['txid'])['bip125-replaceable'])
|
||||||
assert_raises_rpc_error(-26, 'txn-mempool-conflict', self.nodes[0].sendrawtransaction, replacement_child_tx["hex"], 0)
|
assert_raises_rpc_error(-26, 'txn-mempool-conflict', self.nodes[0].sendrawtransaction, replacement_child_tx["hex"], 0)
|
||||||
|
|
||||||
|
self.log.info('Check that the child tx can still be replaced (via a tx that also replaces the parent)')
|
||||||
|
replacement_parent_tx = self.wallet.send_self_transfer(
|
||||||
|
from_node=self.nodes[0],
|
||||||
|
utxo_to_spend=confirmed_utxo,
|
||||||
|
sequence=0xffffffff,
|
||||||
|
fee_rate=Decimal('0.03'),
|
||||||
|
)
|
||||||
|
# Check that child is removed and update wallet utxo state
|
||||||
|
assert_raises_rpc_error(-5, 'Transaction not in mempool', self.nodes[0].getmempoolentry, optout_child_tx['txid'])
|
||||||
|
self.wallet.get_utxo(txid=optout_child_tx['txid'])
|
||||||
|
|
||||||
def test_replacement_relay_fee(self):
|
def test_replacement_relay_fee(self):
|
||||||
tx = self.wallet.send_self_transfer(from_node=self.nodes[0])['tx']
|
tx = self.wallet.send_self_transfer(from_node=self.nodes[0])['tx']
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user