#339 - fix son_ids in list_active_sons

This commit is contained in:
Vlad Dobromyslov 2022-04-08 09:14:36 +03:00
parent b09c22b224
commit 8bb452858c

View file

@ -2231,20 +2231,28 @@ public:
return sign_transaction( tx, broadcast ); return sign_transaction( tx, broadcast );
} FC_CAPTURE_AND_RETHROW( (owner_account) ) } } FC_CAPTURE_AND_RETHROW( (owner_account) ) }
//! Fixme - do we need to specify sidechain_type as params here?
map<string, son_id_type> list_active_sons() map<string, son_id_type> list_active_sons()
{ {
try try
{ {
//! Fixme - now only bitcoin, fix according to sidechain_type
const global_property_object& gpo = get_global_properties(); const global_property_object& gpo = get_global_properties();
vector<son_id_type> son_ids; set<son_id_type> son_ids_set;
son_ids.reserve(gpo.active_sons.at(sidechain_type::bitcoin).size()); for(const auto& active_sidechain_type : active_sidechain_types)
std::transform(gpo.active_sons.at(sidechain_type::bitcoin).cbegin(), gpo.active_sons.at(sidechain_type::bitcoin).cend(), {
std::inserter(son_ids, son_ids.end()), std::transform(gpo.active_sons.at(active_sidechain_type).cbegin(), gpo.active_sons.at(active_sidechain_type).cend(),
[](const son_info& swi) { std::inserter(son_ids_set, son_ids_set.end()),
[](const son_info &swi) {
return swi.son_id; return swi.son_id;
}); });
}
vector<son_id_type> son_ids;
son_ids.reserve(son_ids_set.size());
for(const auto& son_id : son_ids_set)
{
son_ids.emplace_back(son_id);
}
std::vector<fc::optional<son_object>> son_objects = _remote_db->get_sons(son_ids); std::vector<fc::optional<son_object>> son_objects = _remote_db->get_sons(son_ids);
vector<std::string> owners; vector<std::string> owners;
for(auto obj: son_objects) for(auto obj: son_objects)
@ -2267,6 +2275,7 @@ public:
FC_CAPTURE_AND_RETHROW() FC_CAPTURE_AND_RETHROW()
} }
//! Fixme - do we need to specify sidechain_type as params here?
map<son_id_type, string> get_son_network_status() map<son_id_type, string> get_son_network_status()
{ {
try try