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`
stdunique_ptr<WalletDatabase> new_db = MakeDatabase(db_dir, opts, db_status, error);
    assert(new_db); // This is to prevent doing anything further with this . The original file was deleted, but a backup exists.
    m_databreset();
    m_database = stdmove(new_db);
    // Write existing records into the new DB
    batch = m_database->MakeBatch();
    bool began = batch->TxnBegin();
    assert(began); // This is a critical error, the new db could not be written to. The original db exists as a backup, but we should not continue execution.
    for (const auto& [key, value]  records) {
        CDataStream ss_key(key, SER_DISK, CLIENT_VERSION);
        CDataStream ss_value(value, SER_DISK, CLIENT_VERSION);
        if (!batch->Write(ss_key, ss_value)) {
            batch->TxnAbort();
            m_database->Close();
            fsremove(m_database->Filename());
            assert( // This is a critical error, the new db could not be written to. The original db exists as a backup, but we should not continue execution.
        }
    }
    bool committed = batch->TxnCommit();
    assert(committed); // This is a critical error, the new db could not be written to. The original db exists as a backup, but we should not continue execution.
    return true;
}
stdoptional<MigrationData> CWalletGetDescriptorsForLegacy(bilingual_str& error) const
{
    AssertLockHeld(cs_);
    LegacyScriptPubKeyMan* legacy_spkm = GetLegacyScriptPubKeyMan();
    if (!legacy_spkm) {
        error = _("Error This  is already a  ");
        return stdnullopt;
    }