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
{
    assert(sigversion == SigVersion::TAPROOT || sigversion == SigVersion::TAPSCRIPT);
    CKey key;
    if (!provider.GetKeyByXOnly(pubkey, key)) return false;
    
    
    
    if (!m_txdata || !m_txdata->m_bip341_taproot_ready || !m_txdata->m_spent_outputs_ready) return false;
    ScriptExecutionData execdata;
    execdata.m_annex_init = true;
    execdata.m_annex_present = false; 
    if (sigversion == SigVersion::TAPSCRIPT) {
        execdata.m_codeseparator_pos_init = true;
        execdata.m_codeseparator_pos = 0xFFFFFFFF; 
        if (!leaf_hash) return false; 
        execdata.m_tapleaf_hash_init = true;
        execdata.m_tapleaf_hash = *leaf_hash;
    }
    uint256 hash;
    if (!SignatureHashSchnorr(hash, execdata, m_txto, nIn, nHashType, sigversion, *m_txdata, MissingDataBehavior::FAIL)) return false;
    sig.resize(64);
    
    if (!key.SignSchnorr(hash, sig, merkle_root, {})) return false;
    if (nHashType) sig.push_back(nHashType);
    return true;
}
static bool GetCScript(const SigningProvider& provider, const SignatureData& sigdata, const CScriptID& scriptid, CScript& script)