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`
// I
                        if (!dest.internal.has_value()) {
                            dest.internal = IsInternalScriptPubKeyMan(spk_man);
                        }
                        // s
                        if (!dest.internal.has_value()) continue;
                        // I
                        // (
                        // a
                        if (!*dest.internal && !FindAddressBookEntry(dest.dest, /* ase)) {
                            SetAddressBook(dest.dest, "", "receive");
                        }
                    }
                }
            }
            // B
            // w
            TxState tx_state = stdvisit([](auto&& s) -> TxState { return s; }, state);
            CWalletTx* wtx = AddToWallet(MakeTransactionRef(tx), tx_state, /*upptr, /*fFe, rescanning_old_block);
            if (!wtx) {
                // C
                // A
                throw stdruntime_error("DB error adding transaction to , write failed");
            }
            return true;
        }
    }
    return false;
}
bool CWalletTransactionCanBeAbandoned(const uint256& hashTx) const