EDITED 2019-02-08

`maxTxFee` is a global variable, used by both the raw transaction and wallet RPCs. It's set from `-maxtxfee`.

~listed in the global help text in init.cpp, but is only set in `WalletInit::ParameterInteraction()`. If the wallet is disabled, then `-maxtxfee` is ignored and the default is used.~

~This behaviour has existed since the mempool was changed to limit acceptance based on `maxTxFee` in https://github.com/bitcoin/bitcoin/commit/fa331db68bcc68e4c93fb45aaa30f911b0ecfe1a.~

~Short-term fix is to move the `-maxtxfee` handling to `InitParameterInteraction()` in init.cpp.~
EDIT: `maxTxFee` initiation bug fixed in #15357 

I don't think we should share this setting between the node and wallet.
public:
    
    bool HasWalletSupport() const override {return true;}
    
    void AddWalletOptions() const override;
    
    bool ParameterInteraction() const override;
    
    void Construct(InitInterfaces& interfaces) const override;
};
const WalletInitInterface& g_wallet_init_interface = WalletInit();
void WalletInit::AddWalletOptions() const
{
    gArgs.AddArg("-addresstype", strprintf("What type of addresses to use (\"legacy\", \"p2sh-segwit\", or \"bech32\", default: \"%s\")", FormatOutputType(DEFAULT_ADDRESS_TYPE)), false, OptionsCategory::WALLET);
    gArgs.AddArg("-avoidpartialspends", strprintf("Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Privacy is improved as an address is only used once (unless someone sends to it after spending from it), but may result in slightly higher fees as suboptimal coin selection may result due to the added limitation (default: %u)", DEFAULT_AVOIDPARTIALSPENDS), false, OptionsCategory::WALLET);
    gArgs.AddArg("-changetype", "What type of change to use (\"legacy\", \"p2sh-segwit\", or \"bech32\"). Default is same as -addresstype, except when -addresstype=p2sh-segwit a native segwit output is used when sending to a native segwit address)", false, OptionsCategory::WALLET);
    gArgs.AddArg("-disablewallet", "Do not load the wallet and disable wallet RPC calls", false, OptionsCategory::WALLET);
    gArgs.AddArg("-discardfee=<amt>", strprintf("The fee rate (in %s/kB) that indicates your tolerance for discarding change by adding it to the fee (default: %s). "