RPC field to indicate which of the conflicted wallet transactions is in the mempool #21018

issue shesek openend this issue on January 27, 2021
  1. shesek commented at 8:43 pm on January 27, 2021: contributor

    listtransactions/listsinceblock don’t currently indicate which of the conflicted unconfirmed wallet transactions are considered ‘active’ (in the node’s mempool) and which aren’t.

    To determine this, one currently has to issue an additional getmempoolentry rpc call and check if that fails or not. It would be useful if this information was more readily available, without requiring additional calls.

    Additionally, it appears that there’s an inconsistency between gettransaction and listtransactions. Normally, listtransactions returns a flattened concatenated list of the details for all the wallet transactions, with one entry per detail entry. But in this case, gettransaction returns an empty details array for ’non active’ transactions, which should to my understanding translate to the transaction not showing up in listtransactions at all, yet it does. (this is wrong, it was a PEBMAC)

    My preference would be for ’non active’ unconfirmed transactions to show up in both, but with a flag that indicates their status (similarly to confirmations < 0 for transactions that conflict with confirmed transactions).

  2. shesek added the label Feature on Jan 27, 2021
  3. jonatack commented at 8:58 pm on January 27, 2021: contributor
  4. danben commented at 11:24 pm on February 20, 2021: contributor
    Hi - I started trying to write a functional test to demonstrate this behavior, but I realized I don’t quite understand what’s going on here. How does it happen that a transaction (the “non active” one) is hanging out in the wallet but not in the mempool?
  5. shesek commented at 11:28 pm on February 20, 2021: contributor
    @danben The typical case where this would happen is RBF.
  6. maflcko added the label Wallet on Feb 21, 2021
  7. danben commented at 5:24 pm on February 22, 2021: contributor
    @shesek I can’t reproduce the behavior you’re seeing re: gettransaction. For me, the details field is identical (and nonempty) when I call gettransaction on the transaction before and after it is evicted from the mempool. Can you provide more information so I can figure out where the discrepancy is coming from?
  8. shesek commented at 12:28 pm on February 23, 2021: contributor

    @danben I tried again and oddly enough can’t seem to reproduce the empty details array anymore. I’m fairly certain that I saw this behavior before, not sure what changed.

    Edit: I think I know what happened, it was a PEBMAC – I was manually issuing gettransaction without include_watchonly, while looking at the output of a program that issued listtransactions with it, which was the actual cause for the disparity. Apologies for the confusion!

  9. adamjonas commented at 8:33 pm on March 9, 2023: member
    This hasn’t seen any activity for a few years and doesn’t seem to be making forward progress. Closing for now.
  10. adamjonas closed this on Mar 9, 2023

  11. bitcoin locked this on Mar 8, 2024

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-30 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me