Fixes #29711.
When MiniMiner cannot calculate bump fees for requested unconfirmed outpoints, for example because GatherClusters() returns an empty cluster after hitting its 500 transaction cutoff, wallet callers can receive an empty bump-fee map and should not index it with map::at.
This change:
- keeps
calculateIndividualBumpFees()returning its existing map type - treats an empty bump-fee map for non-empty requested outpoints as a calculation failure
- propagates the failure through
AvailableCoins()asutil::Result<CoinsResult> - returns the existing wallet bump-fee error from transaction creation and
sendallpaths instead of surfacingmap::ator silently treating failure as zero bump fee - updates no-feerate callers, tests, and wallet benchmarks for the new result type
- adds MiniMiner and functional wallet regressions for the enormous-cluster case
This overlaps with #34698, but keeps the patch aligned with the maintainer feedback there by avoiding chain-interface churn.
Testing:
git diff --checkcmake --build build-wallet-bump-fee --target test_bitcoin bench_bitcoin -j $(sysctl -n hw.ncpu)build-wallet-bump-fee/bin/test_bitcoin --run_test=miniminer_tests,spend_tests,wallet_testscmake --build build-wallet-bump-fee --target bitcoind bitcoin-cli -j $(sysctl -n hw.ncpu)python3 build-wallet-bump-fee/test/functional/test_runner.py wallet_spend_unconfirmed.pybuild-wallet-bump-fee/bin/test_bitcoinbuild-wallet-bump-fee/bin/bench_bitcoin -filter="WalletAvailableCoins|WalletCreateTxUseOnlyPresetInputs|WalletCreateTxUsePresetInputsAndCoinSelection" -sanity-check