Different wallets may be used for different purposes.  When a notification is triggered, we get the TXID but don't know which wallet is involved.  It would be useful to have different walletnotify actions depending on which wallet is involved by the transaction.

It could be used like (bitcoin.conf):

`walletnotify.walletname=action %s`

Or maybe a more simple and flexible (dynamic-wallets compatible) way:

`walletnotify=action %s %w`

where %w is the name of the wallet.  This way, notify action (and not Bitcoin Core) is responsible for choosing the right action depending on the wallet and it is easier to RPC query the good wallet (ie gettransaction).

bool CheckDataDirOption();
void ClearDatadirCache();
fs::path GetConfigFile(const std::string& confPath);
#ifdef WIN32
fs::path GetSpecialFolderPath(int nFolder, bool fCreate = true);
#endif
#ifndef WIN32
std::string ShellEscape(const std::string& arg);
#endif
#if HAVE_SYSTEM
void runCommand(const std::string& strCommand);
#endif
/**
 * Most paths passed as configuration arguments are treated as relative to
 * the datadir if they are not absolute.
 *
 * @param path The path to be conditionally prefixed with datadir.
 * @param net_specific Forwarded to GetDataDir().
 * @return The normalized path.
 */
fs::path AbsPathForConfigVal(const fs::path& path, bool net_specific = true);
inline bool IsSwitchChar(char c)
{
#ifdef WIN32
    return c == '-' || c == '/';
#else
    return c == '-';
#endif
}
enum class OptionsCategory {