HomePhabricator

wallet: Actually treat (un)confirmed txs as (un)confirmed

Description

wallet: Actually treat (un)confirmed txs as (un)confirmed

Summary:

Unconfirmed txs in the GUI

The GUI clumsily attempts to guess if unconfirmed txs are locked until a future time. This is currently based on the locktime only, not nSequence, thus wrong. Fix this by removing the clumsy code and treat all unconfirmed txs as unconfirmed. The GUI already prints whether a tx is in the mempool, in which case the user knows that the tx wasn't locked until a future time. If the tx is not in the mempool, it might be better to report the exact reject reason from the mempool instead of using incorrect heuristics.

Confirmed txs in the wallet

The wallet drops coins that it incorrectly assumes to be locked until a future time, even if they are already confirmed in the chain. This is because the wallet is using the wrong time (adjusted network time) instead of MTP, due to the -1 default argument of CheckFinalTx.

The issues are fixed in separate commits and there is even a test.

Backport of core#24067.

Test Plan:

ninja all check-all

Reviewers: #bitcoin_abc, sdulfari

Reviewed By: #bitcoin_abc, sdulfari

Differential Revision: https://reviews.bitcoinabc.org/D12949

Details

Provenance
MarcoFalke <falke.marco@gmail.com>Authored on Jan 14 2022, 10:48
FabienCommitted on Jan 5 2023, 21:12
FabienPushed on Jan 5 2023, 21:12
Reviewer
Restricted Project
Differential Revision
D12949: wallet: Actually treat (un)confirmed txs as (un)confirmed
Parents
rABCb19d99828848: Fix a -Wreturn-type warning with GCC
Branches
Unknown
Tags
Unknown