@@ -2576,7 +2576,7 @@ CAmount CWallet::GetAvailableBalance(const CCoinControl* coinControl) const
2576
2576
2577
2577
CAmount balance = 0 ;
2578
2578
std::vector<COutput> vCoins;
2579
- AvailableCoins (vCoins, true , coinControl);
2579
+ AvailableCoins (vCoins, coinControl);
2580
2580
for (const COutput& out : vCoins) {
2581
2581
if (out.fSpendable ) {
2582
2582
balance += out.tx ->tx ->vout [out.i ].nValue ;
@@ -2585,7 +2585,7 @@ CAmount CWallet::GetAvailableBalance(const CCoinControl* coinControl) const
2585
2585
return balance;
2586
2586
}
2587
2587
2588
- void CWallet::AvailableCoins (std::vector<COutput> &vCoins, bool fOnlySafe , const CCoinControl* coinControl, const CAmount& nMinimumAmount, const CAmount& nMaximumAmount, const CAmount &nMinimumSumAmount, const uint64_t nMaximumCount) const
2588
+ void CWallet::AvailableCoins (std::vector<COutput> &vCoins, const CCoinControl* coinControl, const CAmount& nMinimumAmount, const CAmount& nMaximumAmount, const CAmount &nMinimumSumAmount, const uint64_t nMaximumCount) const
2589
2589
{
2590
2590
AssertLockHeld (cs_wallet);
2591
2591
@@ -2598,6 +2598,7 @@ void CWallet::AvailableCoins(std::vector<COutput> &vCoins, bool fOnlySafe, const
2598
2598
bool allow_used_addresses = !IsWalletFlagSet (WALLET_FLAG_AVOID_REUSE) || (coinControl && !coinControl->m_avoid_address_reuse );
2599
2599
const int min_depth = {coinControl ? coinControl->m_min_depth : DEFAULT_MIN_DEPTH};
2600
2600
const int max_depth = {coinControl ? coinControl->m_max_depth : DEFAULT_MAX_DEPTH};
2601
+ const bool only_safe = {coinControl ? !coinControl->m_include_unsafe_inputs : true };
2601
2602
2602
2603
std::set<uint256> trusted_parents;
2603
2604
for (auto pcoin : GetSpendableTXs ()) {
@@ -2618,7 +2619,7 @@ void CWallet::AvailableCoins(std::vector<COutput> &vCoins, bool fOnlySafe, const
2618
2619
2619
2620
bool safeTx = IsTrusted (*pcoin, trusted_parents);
2620
2621
2621
- if (fOnlySafe && !safeTx) {
2622
+ if (only_safe && !safeTx) {
2622
2623
continue ;
2623
2624
}
2624
2625
@@ -3166,7 +3167,7 @@ bool CWallet::SelectTxDSInsByDenomination(int nDenom, CAmount nValueMax, std::ve
3166
3167
3167
3168
CCoinControl coin_control;
3168
3169
coin_control.nCoinType = CoinType::ONLY_READY_TO_MIX;
3169
- AvailableCoins (vCoins, true , &coin_control);
3170
+ AvailableCoins (vCoins, &coin_control);
3170
3171
WalletCJLogPrint ((*this ), " CWallet::%s -- vCoins.size(): %d\n " , __func__, vCoins.size ());
3171
3172
3172
3173
Shuffle (vCoins.rbegin (), vCoins.rend (), FastRandomContext ());
@@ -3366,7 +3367,7 @@ bool CWallet::SelectDenominatedAmounts(CAmount nValueMax, std::set<CAmount>& set
3366
3367
std::vector<COutput> vCoins;
3367
3368
CCoinControl coin_control;
3368
3369
coin_control.nCoinType = CoinType::ONLY_READY_TO_MIX;
3369
- AvailableCoins (vCoins, true , &coin_control);
3370
+ AvailableCoins (vCoins, &coin_control);
3370
3371
// larger denoms first
3371
3372
std::sort (vCoins.rbegin (), vCoins.rend (), CompareByPriority ());
3372
3373
@@ -3405,8 +3406,9 @@ bool CWallet::HasCollateralInputs(bool fOnlyConfirmed) const
3405
3406
3406
3407
std::vector<COutput> vCoins;
3407
3408
CCoinControl coin_control;
3409
+ coin_control.m_include_unsafe_inputs = !fOnlyConfirmed ;
3408
3410
coin_control.nCoinType = CoinType::ONLY_COINJOIN_COLLATERAL;
3409
- AvailableCoins (vCoins, fOnlyConfirmed , &coin_control);
3411
+ AvailableCoins (vCoins, &coin_control);
3410
3412
3411
3413
return !vCoins.empty ();
3412
3414
}
@@ -3480,7 +3482,7 @@ bool CWallet::CreateTransactionInternal(
3480
3482
{
3481
3483
CAmount nAmountAvailable{0 };
3482
3484
std::vector<COutput> vAvailableCoins;
3483
- AvailableCoins (vAvailableCoins, !coin_control. m_include_unsafe_inputs , &coin_control, 1 , MAX_MONEY, MAX_MONEY, 0 );
3485
+ AvailableCoins (vAvailableCoins, &coin_control, 1 , MAX_MONEY, MAX_MONEY, 0 );
3484
3486
CoinSelectionParams coin_selection_params; // Parameters for coin selection, init with dummy
3485
3487
coin_selection_params.use_bnb = false ; // never use BnB
3486
3488
0 commit comments