aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrunoerg <brunoely.gc@gmail.com>2022-05-16 17:58:19 -0300
committerbrunoerg <brunoely.gc@gmail.com>2023-01-13 10:29:00 -0300
commita1aaa7f51f4205ae4d27fbceb2c3a97bc114e828 (patch)
treed8a2799e93f3155f92666fc3b22e8f8df0d1fbf4
parent296e88225096125b08665b97715c5b8ebb1d28ec (diff)
rpc, wallet: add `abandoned` field for all categories of transactions in ListTransactions
-rw-r--r--src/wallet/rpc/transactions.cpp10
-rwxr-xr-xtest/functional/wallet_bumpfee.py5
2 files changed, 9 insertions, 6 deletions
diff --git a/src/wallet/rpc/transactions.cpp b/src/wallet/rpc/transactions.cpp
index c257af13c4..d2b33a8b70 100644
--- a/src/wallet/rpc/transactions.cpp
+++ b/src/wallet/rpc/transactions.cpp
@@ -389,6 +389,7 @@ static void ListTransactions(const CWallet& wallet, const CWalletTx& wtx, int nM
entry.pushKV("label", label);
}
entry.pushKV("vout", r.vout);
+ entry.pushKV("abandoned", wtx.isAbandoned());
if (fLong)
WalletTxToJSON(wallet, wtx, entry);
ret.push_back(entry);
@@ -462,8 +463,7 @@ RPCHelpMan listtransactions()
},
TransactionDescriptionString()),
{
- {RPCResult::Type::BOOL, "abandoned", /*optional=*/true, "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
- "'send' category of transactions."},
+ {RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable)."},
})},
}
},
@@ -576,8 +576,7 @@ RPCHelpMan listsinceblock()
},
TransactionDescriptionString()),
{
- {RPCResult::Type::BOOL, "abandoned", /*optional=*/true, "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
- "'send' category of transactions."},
+ {RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable)."},
{RPCResult::Type::STR, "label", /*optional=*/true, "A comment for the address/transaction, if any"},
})},
}},
@@ -722,8 +721,7 @@ RPCHelpMan gettransaction()
{RPCResult::Type::NUM, "vout", "the vout value"},
{RPCResult::Type::STR_AMOUNT, "fee", /*optional=*/true, "The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the \n"
"'send' category of transactions."},
- {RPCResult::Type::BOOL, "abandoned", /*optional=*/true, "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
- "'send' category of transactions."},
+ {RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable)."},
{RPCResult::Type::ARR, "parent_descs", /*optional=*/true, "Only if 'category' is 'received'. List of parent descriptors for the scriptPubKey of this coin.", {
{RPCResult::Type::STR, "desc", "The descriptor string."},
}},
diff --git a/test/functional/wallet_bumpfee.py b/test/functional/wallet_bumpfee.py
index 1cb3f434e8..f1e7869d91 100755
--- a/test/functional/wallet_bumpfee.py
+++ b/test/functional/wallet_bumpfee.py
@@ -539,6 +539,11 @@ def test_unconfirmed_not_spendable(self, rbf_node, rbf_node_address):
# Call abandon to make sure the wallet doesn't attempt to resubmit
# the bump tx and hope the wallet does not rebroadcast before we call.
rbf_node.abandontransaction(bumpid)
+
+ tx_bump_abandoned = rbf_node.gettransaction(bumpid)
+ for tx in tx_bump_abandoned['details']:
+ assert_equal(tx['abandoned'], True)
+
assert bumpid not in rbf_node.getrawmempool()
assert rbfid in rbf_node.getrawmempool()