util: dedup code in callers of serviceFlagToStr()

Introduce `serviceFlagsToStr()` which hides the internals of the bitmask
and simplifies callers of `serviceFlagToStr()`.
This commit is contained in:
Vasil Dimov
2020-05-29 18:52:59 +02:00
parent fbacad1880
commit 189ae0c38b
4 changed files with 26 additions and 16 deletions

View File

@@ -841,14 +841,10 @@ std::vector<CScript> EvalDescriptorStringOrObject(const UniValue& scanobject, Fl
UniValue GetServicesNames(ServiceFlags services)
{
const uint64_t services_n = services;
UniValue servicesNames(UniValue::VARR);
for (int i = 0; i < 64; ++i) {
const uint64_t mask = 1ull << i;
if (services_n & mask) {
servicesNames.push_back(serviceFlagToStr(i));
}
for (const auto& flag : serviceFlagsToStr(services)) {
servicesNames.push_back(flag);
}
return servicesNames;