External inputs are currently only supported for initial transaction creation functions. Extend `solving_data` arguments as necessary to support fee bumping wallet transactions with non-wallet inputs.

https://github.com/bitcoin/bitcoin/pull/17211#issuecomment-897653994
return result;
    }
    
    std::vector<CRecipient> recipients;
    for (const auto& output : wtx.tx->vout) {
        if (!OutputIsChange(wallet, output)) {
            CRecipient recipient = {output.scriptPubKey, output.nValue, false};
            recipients.push_back(recipient);
        } else {
            CTxDestination change_dest;
            ExtractDestination(output.scriptPubKey, change_dest);
            new_coin_control.destChange = change_dest;
        }
    }
    isminefilter filter = wallet.GetLegacyScriptPubKeyMan() && wallet.IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS) ? ISMINE_WATCH_ONLY : ISMINE_SPENDABLE;
    old_fee = CachedTxGetDebit(wallet, wtx, filter) - wtx.tx->GetValueOut();
    if (coin_control.m_feerate) {
        
        
        const int64_t maxTxSize{CalculateMaximumSignedTxSize(*wtx.tx, &wallet).vsize};
        Result res = CheckFeeRate(wallet, wtx, *new_coin_control.m_feerate, maxTxSize, errors);
        if (res != Result::OK) {
            return res;
        }
    } else {
        
        new_coin_control.m_feerate = EstimateFeeRate(wallet, wtx, old_fee, new_coin_control);
    }