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 (!DeploymentEnabled(params, dep)) return;
    UniValue rv(UniValue::VOBJ);
    rv.pushKV("type", "buried");
    
    
    rv.pushKV("active", DeploymentActiveAfter(active_chain_tip, params, dep));
    rv.pushKV("height", params.DeploymentHeight(dep));
    softforks.pushKV(DeploymentName(dep), rv);
}
static void SoftForkDescPushBack(const CBlockIndex* active_chain_tip, UniValue& softforks, const Consensus::Params& consensusParams, Consensus::DeploymentPos id)
{
    
    if (!DeploymentEnabled(consensusParams, id)) return;
    UniValue bip9(UniValue::VOBJ);
    const ThresholdState thresholdState = g_versionbitscache.State(active_chain_tip, consensusParams, id);
    switch (thresholdState) {
    case ThresholdState::DEFINED: bip9.pushKV("status", "defined"); break;
    case ThresholdState::STARTED: bip9.pushKV("status", "started"); break;
    case ThresholdState::LOCKED_IN: bip9.pushKV("status", "locked_in"); break;
    case ThresholdState::ACTIVE: bip9.pushKV("status", "active"); break;
    case ThresholdState::FAILED: bip9.pushKV("status", "failed"); break;
    }
    const bool has_signal = (ThresholdState::STARTED == thresholdState || ThresholdState::LOCKED_IN == thresholdState);