#36685 wallet: export replaces_txid and replaced_by_txid
| Reviewability | Reviews | Agreement | Size | ||||
|---|---|---|---|---|---|---|---|
| #36685 wallet: export replaces_txid and replaced_by_txid | Ready | 2 | Strong | 4 | |||
|
|
|
|
| |||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | |||||||
Goal
Export `replaces_txid` and `replaced_by_txid` from internal `wallet::CWalletTx` into the `interfaces::WalletTx` struct. In `MakeWalletTx`, populate both optional `Txid` fields from `wtx.m_replaces_txid` and `wtx.m_replaced_by_txid`.
Problem: A prior cleanup removed `interfaces::WalletTx::value_map` from the main repository without re-exporting replacement transaction IDs. Downstream interface consumers, specifically the experimental QML GUI repository, lost access to transaction replacement details.
Evidence of importance:
- PR description references commit f4ff2b8db93 in bitcoin-core/gui-qml adding usage of `replaces_txid` and `replaced_by_txid`, followed by commit a2b0bfcd854 in bitcoin/bitcoin removing the backing `value_map` without exposing dedicated fields.
Risk of a mistake: low (wallet). This is a 4-line read-only export of existing transaction metadata across internal interface boundaries.
Changed since the previous assessment: No changes to the patch or commit; diff and commit details are now confirmed.
Reviewability
Ready
Nothing known that would invalidate a review now.
Waiting on (from the thread read):
- nothing: PR has approvals and no open objections
Agreement
Strong
substantive support, no open objection (pseudoramdom, johnny9)
Thread notes: Author provided an example commit updating gui-qml's bitcoin submodule that depends on this PR; no new claims or reviewer changes.
Objections, suggestions, and questions: none recorded.
Support:
- pseudoramdom (member) (ACK, 2026-10-28) [read]: gui-qml is pinned to an older Core version that still exposed `value_map`, so the missing interface fields hadn't been noticed
- johnny9 (contributor) (ACK, 2026-10-28) [read]: gui-qml should be updated once merged
Participants:
- johnny9 (contributor, support, 1 statements 2026-10-28 to 2026-10-28): ACKed and noted gui-qml should update once merged
- pseudoramdom (member, support, 1 statements 2026-10-28 to 2026-10-28): ACKed after confirming gui-qml had missed the interface removal
Files
0 lines under test/bench/ci.
- src/interfaces/wallet.h +2/-0
- src/wallet/interfaces.cpp +2/-0
Card
The short text the ranking pass compares across PRs.
Export replaces_txid and replaced_by_txid from internal CWalletTx through to interfaces::WalletTx. A previous refactoring in Bitcoin Core removed the generic value_map string table from WalletTx without exposing replacement identifiers, breaking transaction replacement tracking in the external QML GUI. This restores access to those transaction IDs via dedicated struct members.
Data
thread read through 2026-10-28 (4 statements), head bff0a2fabf
labels: Wallet
Categories
Wallet
P3 · bug fix (ranking pass: Moved up to sit beside #36597, the other interface restoration serving gui-qml.)
Restores access to replacement transaction IDs lost during a prior cleanup of interfaces::WalletTx::value_map. Downstream consumers like gui-qml rely on these fields to show transaction replacement details.
Membership: Labeled 'Wallet' and modifies src/wallet/interfaces.cpp to populate replacement transaction IDs on interfaces::WalletTx.
Factors: security/stability 0, bug 1, performance 0, user value 1, leverage 1