Return SelectionResult from SelectCoinsSRD

Changes SelectCoinsSRD to return a SelectionResult.
This commit is contained in:
Andrew Chow committed 2021-12-05 13:40:48 -05:00
1 parent 0ef6184575
commit 51a9c00b4d
3 files changed
+9 -12

No files matched your search

+4 -6
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;