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
bool CreateSig(const SigningProvider& provider, std::vector<unsigned char>& vchSig, const CKeyID& keyid, const CScript& scriptCode, SigVersion sigversion) const override;
    bool CreateSchnorrSig(const SigningProvider& provider, std::vector<unsigned char>& sig, const XOnlyPubKey& pubkey, const uint256* leaf_hash, const uint256* merkle_root, SigVersion sigversion) const override;
};
extern const BaseSignatureCreator& DUMMY_SIGNATURE_CREATOR;
extern const BaseSignatureCreator& DUMMY_MAXIMUM_SIGNATURE_CREATOR;
typedef std::pair<CPubKey, std::vector<unsigned char>> SigPair;
struct SignatureData {
    bool complete = false; 
    bool witness = false; 
    CScript scriptSig; 
    CScript redeem_script; 
    CScript witness_script; 
    CScriptWitness scriptWitness; 
    TaprootSpendData tr_spenddata; 
    std::optional<TaprootBuilder> tr_builder; 
    std::map<CKeyID, SigPair> signatures; 
    std::map<CKeyID, std::pair<CPubKey, KeyOriginInfo>> misc_pubkeys;
    std::vector<unsigned char> taproot_key_path_sig; 
    std::map<std::pair<XOnlyPubKey, uint256>, std::vector<unsigned char>> taproot_script_sigs; 
    std::map<XOnlyPubKey, std::pair<std::set<uint256>, KeyOriginInfo>> taproot_misc_pubkeys; 
    std::vector<CKeyID> missing_pubkeys; 
    std::vector<CKeyID> missing_sigs; 
    uint160 missing_redeem_script; 
    uint256 missing_witness_script; 
    SignatureData() {}