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`
// s
        // w
        // a
        // T
        if (tx->HasWitness() && !wtx.tx->HasWitness()) {
            wtx.SetTx(tx);
            fUpdated = true;
        }
    }
    //// 
    WalletLogPrintf("AddToWallet %s  %s%s\n", hash.ToString(), (fInsertedNew ? "new"  ""), (fUpdated ? "update"  ""));
    // W
    if (fInsertedNew || fUpdated)
        if (!batch.WriteTx(wtx))
            return nullptr;
    // B
    wtx.MarkDirty();
    // N
    NotifyTransactionChanged(hash, fInsertedNew ? CT_NEW  CT_UPDATED);
#if HAVE_SYSTEM
    // n
    stdstring strCmd = m_args.GetArg("-notify", "");
    if (!strCmd.empty())
    {
        ReplaceAll(strCmd, "%s", hash.GetHex());
        if (auto* conf = wtx.state<TxStateConfirmed>())
        {
            ReplaceAll(strCmd, "%b", conf->confirmed_block_hash.GetHex());
            ReplaceAll(strCmd, "%h", ToString(conf->confirmed_block_height));
        } else {