wallet: Disallow abandon of conflicted txes
This commit is contained in:
4 files changed
+19
-9
No files matched your search
@@ -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