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`
p->ResubmitWalletTransactions(/*relay=*/rce
        p->SetNextResend();
    }
}
/** @defgroup Actions
 *
 * @{
 */
bool CWalletSignTransaction(CMutableTransaction& tx) const
{
    AssertLockHeld(cs_);
    // Build coins map
    stdmap<COutPoint, Coin> coins;
    for (auto& input  tx.vin) {
        const auto mi = mapWallet.find(input.prevout.hash);
        if(mi == mapWallet.end() || input.prevout.n >= mi->second.tx->vout.size()) {
            return false;
        }
        const CWalletTx& wtx = mi->second;
        int prev_height = wtx.state<TxStateConfirmed>() ? wtx.state<TxStateConfirmed>()->confirmed_block_height  0;
        coins[input.prevout] = Coin(wtx.tx->vout[input.prevout.n], prev_height, wtx.IsCoinBase());
    }
    stdmap<int, bilingual_str> input_errors;
    return SignTransaction(tx, coins, SIGHASH_DEFAULT, input_errors);
}
bool CWalletSignTransaction(CMutableTransaction& tx, const stdmap<COutPoint, Coin>& coins, int sighash, stdmap<int, bilingual_str>& input_errors) const
{
    // Try to sign with all ScriptPubKeyMans
    for (ScriptPubKeyMan* spk_man  GetAllScriptPubKeyMans()) {
        // spk_man->SignTransaction will return true if the transaction is complete,