mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-13 00:07:10 +02:00
wallet: Disallow abandon of conflicted txes
This commit is contained in:
@ -8,11 +8,12 @@
|
||||
descendants as abandoned which allows their inputs to be respent. It can be
|
||||
used to replace "stuck" or evicted transactions. It only works on transactions
|
||||
which are not included in a block and are not currently in the mempool. It has
|
||||
no effect on transactions which are already conflicted or abandoned.
|
||||
no effect on transactions which are already abandoned.
|
||||
"""
|
||||
from test_framework.test_framework import BitcoinTestFramework
|
||||
from test_framework.util import *
|
||||
|
||||
|
||||
class AbandonConflictTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 2
|
||||
@ -28,6 +29,11 @@ class AbandonConflictTest(BitcoinTestFramework):
|
||||
sync_mempools(self.nodes)
|
||||
self.nodes[1].generate(1)
|
||||
|
||||
# Can not abandon non-wallet transaction
|
||||
assert_raises_rpc_error(-5, 'Invalid or non-wallet transaction id', lambda: self.nodes[0].abandontransaction(txid='ff' * 32))
|
||||
# Can not abandon confirmed transaction
|
||||
assert_raises_rpc_error(-5, 'Transaction not eligible for abandonment', lambda: self.nodes[0].abandontransaction(txid=txA))
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
newbalance = self.nodes[0].getbalance()
|
||||
assert(balance - newbalance < Decimal("0.001")) #no more than fees lost
|
||||
|
Reference in New Issue
Block a user