Skip to content

Reset InMempool txs to Inactive before connecting to the node#2051

Draft
OBorce wants to merge 3 commits into
masterfrom
fix/wallet-reset-inmempool-txs
Draft

Reset InMempool txs to Inactive before connecting to the node#2051
OBorce wants to merge 3 commits into
masterfrom
fix/wallet-reset-inmempool-txs

Conversation

@OBorce

@OBorce OBorce commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

We reset all InMempool transactions back to Inactive on

  1. wallet load,
  2. every time the mempool notifications channel is closed
    so that we can rescan them from the node when we connect back.

@ImplOfAnImpl ImplOfAnImpl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I mentioned earlier, mempool can evict transactions - there is a size limit for the entire mempool and an expiration time for each tx. Though at this memoment it's unlikely to happen (the size limit is 300Mb and expiration time 2 weeks), it's better to fix the problem fully from the beginning. At this moment eviction only happens after a new tx has been added to the mempool. So the fix could be that whenever the wallet receives a NewTransaction event, it would obtain all InMempool tx ids from the output cache, check which of them are no longer in mempool and reset their status. (though it's better not to use MempoolRpc::contains_tx for checking and instead introduce an additional method that would operate on a set of ids, to avoid the rpc calls overhead).

Comment thread wallet/src/account/output_cache/tests.rs Outdated
Comment thread wallet/wallet-controller/src/lib.rs Outdated
@OBorce OBorce marked this pull request as draft May 19, 2026 08:34
@ImplOfAnImpl ImplOfAnImpl force-pushed the fix/wallet-reset-inmempool-txs branch from f431306 to 1dafd7c Compare July 6, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants