Return SelectionResult from SelectCoinsSRD

Changes SelectCoinsSRD to return a SelectionResult.
This commit is contained in:
Andrew Chow
2021-09-27 23:22:34 -04:00
parent 0ef6184575
commit 51a9c00b4d
3 changed files with 9 additions and 12 deletions

View File

@@ -166,10 +166,9 @@ std::optional<SelectionResult> SelectCoinsBnB(std::vector<OutputGroup>& utxo_poo
return result;
}
std::optional<std::pair<std::set<CInputCoin>, CAmount>> SelectCoinsSRD(const std::vector<OutputGroup>& utxo_pool, CAmount target_value)
std::optional<SelectionResult> SelectCoinsSRD(const std::vector<OutputGroup>& utxo_pool, CAmount target_value)
{
std::set<CInputCoin> out_set;
CAmount value_ret = 0;
SelectionResult result(target_value);
std::vector<size_t> indexes;
indexes.resize(utxo_pool.size());
@@ -181,10 +180,9 @@ std::optional<std::pair<std::set<CInputCoin>, CAmount>> SelectCoinsSRD(const std
const OutputGroup& group = utxo_pool.at(i);
Assume(group.GetSelectionAmount() > 0);
selected_eff_value += group.GetSelectionAmount();
value_ret += group.m_value;
util::insert(out_set, group.m_outputs);
result.AddInput(group);
if (selected_eff_value >= target_value) {
return std::make_pair(out_set, value_ret);
return result;
}
}
return std::nullopt;