Add unconfirmed transaction pruning when computing closing balance#3119
Merged
Add unconfirmed transaction pruning when computing closing balance#3119
Conversation
Our node balance computation was simplified in #3096, but it is now too simplistic during closing, where some of the balance may be duplicated between the off-chain part and unconfirmed or recently confirmed transactions. We deduplicate those by not counting in our off-chain balance of closing channels outputs that are spent by an unconfirmed or recently confirmed transaction that we've included in our on-chain balance. Fixes #3098
pm47
reviewed
Jul 15, 2025
eclair-core/src/main/scala/fr/acinq/eclair/balance/CheckBalance.scala
Outdated
Show resolved
Hide resolved
Our on-chain utxos can be spent as soon as they have 1 confirmation. When that happens, we still need to deduplicate the corresponding utxo from our off-chain balance, but it doesn't appear in our list of unspent utxos. We fix that by fetching the last blocks and scan all utxos that have been spent in those blocks, which indicates that they must be ignored from our off-chain balance. Once they reach min depth, the off-chain balance won't include them because they will be stored in the `irrevocablySpent` set in the channel data.
pm47
approved these changes
Jul 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Our node balance computation was simplified in #3096, but it is now too simplistic during closing, where some of the balance may be duplicated between the off-chain part and unconfirmed or recently confirmed transactions.
We deduplicate those by not counting in our off-chain balance of closing channels outputs that are spent by an unconfirmed or recently confirmed transaction that we've included in our on-chain balance.
Fixes #3098