https://cirrus-ci.com/task/5603470202896384?logs=ci#L2681
}
    stdoptional<int64_t> oldest_key{stdnumeric_limits<int64_t>max()};
    for (const auto& spk_man_pair  m_spk_managers) {
        oldest_key = stdmin(oldest_key, spk_man_pair.second->GetOldestKeyPoolTime());
    }
    return oldest_key;
}
void CWalletMarkDestinationsDirty(const stdset<CTxDestination>& destinations) {
    for (auto& entry  mapWallet) {
        CWalletTx& wtx = entry.second;
        if (wtx.m_is_cache_empty) continue;
        for (unsigned int i = 0; i < wtx.tx->vout.size(); i++) {
            CTxDestination dst;
            if (ExtractDestination(wtx.tx->vout[i].scriptPubKey, dst) && destinations.count(dst)) {
                wtx.MarkDirty();
                break;
            }
        }
    }
}
void CWalletForEachAddrBookEntry(const ListAddrBookFunc& func) const
{
    AssertLockHeld(cs_);
    for (const stdpair<const CTxDestination, CAddressBookData>& item  m_address_book) {
        const auto& entry = item.second;
        func(item.first, entry.GetLabel(), entry.purpose, entry.IsChange());
    }
}
stdvector<CTxDestination> CWalletListAddrBookAddresses(const stdoptional<AddrBookFilter>& _filter) const
{