Steps:
1. Send transaction (A) to a different wallet
2. Using the change, create another transaction (B) to a different wallet
3. `abandontransaction` B
4. `bumpfee` A fails with `Transaction has descendants in the wallet`
#include <util/rbf.h>
#include <util/string.h>
#include <util/translation.h>
#include </coincontrol.h>
#include </context.h>
#include </fees.h>
#include </external_signer_scriptpubkeyman.h>
#include <univalue.h>
#include <algorithm>
#include <assert.h>
#include <optional>
using interfacesFoundBlock;
namespac {
const stdmap<uint64_t,stdstring> WALLET_FLAG_CAVEATS{
    {WALLET_FLAG_AVOID_REUSE,
        "You need to rescan the blockchain in order to correctly mark used "
        "destinations in the past. Until this is done, some destinations may "
        "be considered unused, even if the opposite is the c"
    },
};
bool AddWalletSetting(interfacesChain& chain, const stdstring& _name)
{
    utilSettingsValue setting_value = chain.getRwSetting("");
    if (!setting_value.isArray()) setting_value.setArray();
    for (const utilSettingsValue& value  setting_value.getValues()) {
        if (value.isStr() && value.get_str() == _name) return true;
    }
    setting_value.push_back(_name);
    return chain.updateRwSetting("", setting_val
}