Merge bitcoin/bitcoin#25685: wallet: Faster transaction creation by removing pre-set-inputs fetching responsibility from Coin Selection #1230
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.
Summary
Backport of Bitcoin PR bitcoin#25685 which refactors coin selection to improve transaction creation performance by separating pre-selected input handling.
Key changes:
FetchSelectedInputs()to validate and fetch pre-selected inputsSelectCoins()to acceptPreSelectedInputsparameterAddInputs()andMerge()methods toSelectionResultAutomaticCoinSelection()for cleaner separation of concernsDash-specific adaptations
ComputeAndSetWaste()(Dash lacksGetChange()from wallet: return change from SelectionResult bitcoin/bitcoin#25647)HasInputWeight/GetInputWeightcalls (not in DashCCoinControl)wallet_create_txbenchmark (requireskernel/chain.hinfrastructure)preset_inputs_testto reflect new behavior where all preset inputs are usedTest plan
coinselector_testsunit tests passBitcoin PR: bitcoin#25685
🤖 Generated with Claude Code