Address comments remaining from #25353

24.x
Antoine Riard 2 years ago
parent 194710d8ff
commit 1056bbdfcd

@ -15,8 +15,8 @@ other consensus and policy rules, each of the following conditions are met:
*Rationale*: See [BIP125
explanation](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki#motivation).
The Bitcoin Core implementation offers a node setting (`mempoolfullrbf`) to allow transaction
replacement without enforcement of the opt-in signaling rule.
Use the (`-mempoolfullrbf`) configuration option to allow transaction replacement without enforcement of the
opt-in signaling rule.
2. The replacement transaction only include an unconfirmed input if that input was included in
one of the directly conflicting transactions. An unconfirmed input spends an output from a

@ -87,8 +87,8 @@ New settings
------------
- A new `mempoolfullrbf` option has been added, which enables the mempool to
accept transaction replacement without enforcing the opt-in replaceability
signal. (#25353)
accept transaction replacement without enforcing BIP125 replaceability
signaling. (#25353)
Tools and Utilities
-------------------

@ -702,17 +702,16 @@ class ReplaceByFeeTest(BitcoinTestFramework):
assert_raises_rpc_error(-26, "insufficient fee", self.nodes[0].sendrawtransaction, tx.serialize().hex())
def test_fullrbf(self):
txid = self.wallet.send_self_transfer(from_node=self.nodes[0])['txid']
self.generate(self.nodes[0], 1)
confirmed_utxo = self.wallet.get_utxo(txid=txid)
confirmed_utxo = self.make_utxo(self.nodes[0], int(2 * COIN))
self.restart_node(0, extra_args=["-mempoolfullrbf=1"])
assert self.nodes[0].getmempoolinfo()["fullrbf"]
# Create an explicitly opt-out transaction
optout_tx = self.wallet.send_self_transfer(
from_node=self.nodes[0],
utxo_to_spend=confirmed_utxo,
sequence=SEQUENCE_FINAL,
sequence=BIP125_SEQUENCE_NUMBER + 1,
fee_rate=Decimal('0.01'),
)
assert_equal(False, self.nodes[0].getmempoolentry(optout_tx['txid'])['bip125-replaceable'])
@ -728,6 +727,7 @@ class ReplaceByFeeTest(BitcoinTestFramework):
# Optout_tx is not anymore in the mempool.
assert optout_tx['txid'] not in self.nodes[0].getrawmempool()
assert conflicting_tx['txid'] in self.nodes[0].getrawmempool()
if __name__ == '__main__':
ReplaceByFeeTest().main()

Loading…
Cancel
Save