public HuobiAccountWebsocketClient(
     IOptions <HuobiAccountWebsocketClientConfig> config,
     IHuobiAccountWebsocketCommunicator communicator,
     IHuobiSerializer serializer,
     IHuobiAuthenticationRequestFactory authenticationRequestFactory,
     ILogger <HuobiAccountWebsocketClient> logger)
     : base(communicator, serializer, logger)
 {
     _config = config;
     _authenticationRequestFactory = authenticationRequestFactory;
 }
        public static IHuobiAccountWebsocketClient CreateAccountClient(
            IHuobiAccountWebsocketCommunicator communicator,
            string accessKey,
            string secretKey,
            ILoggerFactory?loggerFactory = null)
        {
            var options = Options.Create(
                new HuobiAccountWebsocketClientConfig
            {
                Url       = communicator.Url.AbsoluteUri,
                AccessKey = accessKey,
                SecretKey = secretKey
            });

            return(CreateAccountClient(options, communicator, loggerFactory));
        }
        private static IHuobiAccountWebsocketClient CreateAccountClient(
            IOptions <HuobiAccountWebsocketClientConfig> config,
            IHuobiAccountWebsocketCommunicator communicator,
            ILoggerFactory?loggerFactory = null)
        {
            loggerFactory ??= NullLoggerFactory.Instance;

            var serializer                   = new HuobiSerializer(loggerFactory.CreateLogger <HuobiSerializer>());
            var dateTimeProvider             = new HuobiDateTimeProvider();
            var signature                    = new HuobiSignature();
            var authenticationRequestFactory = new HuobiAuthenticationRequestFactory(dateTimeProvider, signature);

            return(new HuobiAccountWebsocketClient(
                       config,
                       communicator,
                       serializer,
                       authenticationRequestFactory,
                       loggerFactory.CreateLogger <HuobiAccountWebsocketClient>()));
        }