mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-28 13:02:38 +02:00
QA: feature_rbf: Check opt-in RBF with TRUC signal
This commit is contained in:
parent
3dbae62c64
commit
0b272c39d8
@ -34,6 +34,8 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||||||
"-limitancestorsize=101",
|
"-limitancestorsize=101",
|
||||||
"-limitdescendantcount=200",
|
"-limitdescendantcount=200",
|
||||||
"-limitdescendantsize=101",
|
"-limitdescendantsize=101",
|
||||||
|
"-mempooltruc=accept",
|
||||||
|
"-paytxfee=0.00001", # this test confuses the fee estimator into nearly 1 BTC fees
|
||||||
],
|
],
|
||||||
# second node has default mempool parameters, besides mempoolfullrbf being disabled
|
# second node has default mempool parameters, besides mempoolfullrbf being disabled
|
||||||
[
|
[
|
||||||
@ -99,8 +101,10 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||||||
|
|
||||||
self.log.info("Running test opt-in...")
|
self.log.info("Running test opt-in...")
|
||||||
self.test_opt_in(fullrbf=False)
|
self.test_opt_in(fullrbf=False)
|
||||||
|
self.test_opt_in(fullrbf=False, use_truc=True)
|
||||||
self.nodes[0], self.nodes[-1] = self.nodes[-1], self.nodes[0]
|
self.nodes[0], self.nodes[-1] = self.nodes[-1], self.nodes[0]
|
||||||
self.test_opt_in(fullrbf=True)
|
self.test_opt_in(fullrbf=True)
|
||||||
|
self.test_opt_in(fullrbf=True, use_truc=True)
|
||||||
self.nodes[0], self.nodes[-1] = self.nodes[-1], self.nodes[0]
|
self.nodes[0], self.nodes[-1] = self.nodes[-1], self.nodes[0]
|
||||||
|
|
||||||
self.log.info("Running test RPC...")
|
self.log.info("Running test RPC...")
|
||||||
@ -513,7 +517,7 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||||||
self.generate(normal_node, 1)
|
self.generate(normal_node, 1)
|
||||||
self.wallet.rescan_utxos()
|
self.wallet.rescan_utxos()
|
||||||
|
|
||||||
def test_opt_in(self, fullrbf):
|
def test_opt_in(self, fullrbf, use_truc=False):
|
||||||
"""Replacing should only work if orig tx opted in"""
|
"""Replacing should only work if orig tx opted in"""
|
||||||
tx0_outpoint = self.make_utxo(self.nodes[0], int(1.1 * COIN))
|
tx0_outpoint = self.make_utxo(self.nodes[0], int(1.1 * COIN))
|
||||||
|
|
||||||
@ -572,15 +576,24 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||||||
# opt-in on one of the inputs
|
# opt-in on one of the inputs
|
||||||
# Transaction should be replaceable on either input
|
# Transaction should be replaceable on either input
|
||||||
|
|
||||||
|
self.generate(self.nodes[0], 1) # clean mempool so parent txs don't trigger BIP125
|
||||||
|
if use_truc:
|
||||||
|
kwargs = {'sequence': SEQUENCE_FINAL, 'version': 3}
|
||||||
|
else:
|
||||||
|
kwargs = {'sequence': [SEQUENCE_FINAL, 0xfffffffd]}
|
||||||
|
|
||||||
tx3a_txid = self.wallet.send_self_transfer_multi(
|
tx3a_txid = self.wallet.send_self_transfer_multi(
|
||||||
from_node=self.nodes[0],
|
from_node=self.nodes[0],
|
||||||
utxos_to_spend=[tx1a_utxo, tx2a_utxo],
|
utxos_to_spend=[tx1a_utxo, tx2a_utxo],
|
||||||
sequence=[SEQUENCE_FINAL, 0xfffffffd],
|
|
||||||
fee_per_output=int(0.1 * COIN),
|
fee_per_output=int(0.1 * COIN),
|
||||||
|
**kwargs
|
||||||
)["txid"]
|
)["txid"]
|
||||||
|
|
||||||
# This transaction is shown as replaceable
|
# This transaction is shown as replaceable
|
||||||
assert_equal(self.nodes[0].getmempoolentry(tx3a_txid)['bip125-replaceable'], True)
|
if use_truc:
|
||||||
|
assert_equal(self.nodes[0].getmempoolentry(tx3a_txid)['bip125-replaceable'], False)
|
||||||
|
else:
|
||||||
|
assert_equal(self.nodes[0].getmempoolentry(tx3a_txid)['bip125-replaceable'], True)
|
||||||
|
|
||||||
self.wallet.send_self_transfer(
|
self.wallet.send_self_transfer(
|
||||||
from_node=self.nodes[0],
|
from_node=self.nodes[0],
|
||||||
|
Loading…
Reference in New Issue
Block a user