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`
if (!spk_man->SetupGeneration()) {
                            error = Untranslated("Unable to generate initial keys");
                            status = DatabaseStatusFAILED_CREATE;
                            return nullptr;
                        }
                    }
                }
            }
            // R
            ->Lock();
        }
    }
    NotifyWalletLoaded(context, );
    AddWallet(context, );
    ->postInitProcess();
    // W
    UpdateWalletSetting(*context.chain, name, load_on_start, warnings);
    // L
    if (!(_creation_flags & WALLET_FLAG_DESCRIPTORS)) {
        warnings.push_back(_("Wallet created successfully. The legacy  type is being deprecated and support for creating and opening legacy s will be removed in the future."));
    }
    status = DatabaseStatusSUCCESS;
    return ;
}
stdshared_ptr<CWallet> RestoreWallet(WalletContext& context, const fspath& backup_file, const stdstring& _name, stdoptional<bool> load_on_start, DatabaseStatus& status, bilingual_str& error, stdvector<bilingual_str>& warnings)
{
    DatabaseOptions options;
    ReadDatabaseArgs(*context.args, options);
    options.require_existing = true;
    const fspath _path = fsbridgeAbsPathJoin(GetWalletDir(), fsu8path(_name));