RPCs that return detailed information about mempool entries (e.g. `getmempoolentry` and `getrawmempool(verbose=True)` include the fields `fee`, `modifiedfee`, `descendantfees`, and `ancestorfees` which were marked as "DEPRECATED" and replaced with a `fees` object field in #12240 (since v0.17).

We should remove these fields, but first, properly deprecate them using `-deprecatedrpc`.

#### Useful skills:

- basic understanding of Bitcoin Core RPC interface

#### Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

{
    if (scores.empty()) {
        return;
    }
    std::sort(scores.begin(), scores.end());
    
    const double weights[NUM_GETBLOCKSTATS_PERCENTILES] = {
        total_weight / 10.0, total_weight / 4.0, total_weight / 2.0, (total_weight * 3.0) / 4.0, (total_weight * 9.0) / 10.0
    };
    int64_t next_percentile_index = 0;
    int64_t cumulative_weight = 0;
    for (const auto& element : scores) {
        cumulative_weight += element.second;
        while (next_percentile_index < NUM_GETBLOCKSTATS_PERCENTILES && cumulative_weight >= weights[next_percentile_index]) {
            result[next_percentile_index] = element.first;
            ++next_percentile_index;
        }
    }
    
    for (int64_t i = next_percentile_index; i < NUM_GETBLOCKSTATS_PERCENTILES; i++) {
        result[i] = scores.back().first;
    }
}
template<typename T>
static inline bool SetHasKeys(const std::set<T>& set) {return false;}