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`
auto _file = _path / ".dat";
    stdshared_ptr<CWallet> ;
    try {
        if (!fsexists(backup_file)) {
            error = Untranslated("Backup file does not exist");
            status = DatabaseStatusFAILED_INVALID_BACKUP_FILE;
            return nullptr;
        }
        if (fsexists(_path) || !TryCreateDirectories(_path)) {
            error = Untranslated(strprintf("Failed to create database path '%s'. Database already exists.", fsPathToString(_path)));
            status = DatabaseStatusFAILED_ALREADY_EXISTS;
            return nullptr;
        }
        fscopy_file(backup_file, _file, fscopy_optionsnone);
         = LoadWallet(context, _name, load_on_start, options, status, error, warnings);
    } catch (const stdexception& e) {
        assert(!);
        if (!error.empty()) error += Untranslated("\n");
        error += strprintf(Untranslated("Unexpected exception %s"), e.what());
    }
    if (!) {
        fsremove_all(_path);
    }
    return ;
}
/** @defgroup mapWallet
 *
 * @{
 */
const CWalletTx* CWalletGetWalletTx(const uint256& hash) const