private void RegisterExecutionHarvesterForEachClient(ContainerBuilder builder)
 {
     foreach (var clientApiKeySecret in _settings.CurrentValue.BitfinexAdapterService.Credentials)
     {
         if (!String.IsNullOrWhiteSpace(clientApiKeySecret.ApiKey) && !String.IsNullOrWhiteSpace(clientApiKeySecret.ApiSecret))
         {
             var socketSubscriber = new BitfinexWebSocketSubscriber(_settings.CurrentValue.BitfinexAdapterService, true, _log, clientApiKeySecret.ApiKey, clientApiKeySecret.ApiSecret);
             builder.RegisterType <BitfinexExecutionHarvester>()
             .AsSelf()
             .As <IHostedService>()
             .WithParameter("socketSubscriber", socketSubscriber)
             .Named <BitfinexExecutionHarvester>(clientApiKeySecret.ApiKey).SingleInstance();
         }
     }
 }
Esempio n. 2
0
        public void ShouldConnectToOpenFeed()
        {
            var subscriber = new BitfinexWebSocketSubscriber(_bitfinexExchangeConfiguration, false, _log);
            var gate       = new ManualResetEventSlim(false);
            var response   = "";

            subscriber.Subscribe(s =>
            {
                response = s;
                gate.Set();
                return(Task.CompletedTask);
            });

            subscriber.Start();


            var recieved = gate.Wait(TimeSpan.FromSeconds(10));

            Assert.True(recieved);
            Assert.Equal("{\"event\":\"info\",\"version\":1.1}", response);
        }
        public BitfinexExecutionHarvesterTest()
        {
            ILog log = new LogToConsole();
            var  bitfinexExchangeConfiguration = new BitfinexExchangeConfiguration
            {
                ApiKey                   = ApiKey,
                ApiSecret                = ApiSecret,
                WebSocketEndpointUrl     = WsApiUrl,
                SupportedCurrencySymbols = new[] {
                    new CurrencySymbol
                    {
                        ExchangeSymbol = "LTCUSD",
                        LykkeSymbol    = "LTCUSD"
                    }
                }
            };

            var subscriber = new BitfinexWebSocketSubscriber(bitfinexExchangeConfiguration, true, log);

            _harvester = new BitfinexExecutionHarvester(subscriber, new BitfinexModelConverter(bitfinexExchangeConfiguration), _testHandler, log);
        }
Esempio n. 4
0
        public void ShouldConnectToAuthFeed()
        {
            var subscriber = new BitfinexWebSocketSubscriber(_bitfinexExchangeConfiguration, true, _log);

            var gate     = new ManualResetEventSlim(false);
            var response = "";

            subscriber.Subscribe(s =>
            {
                response = s;
                gate.Set();
                return(Task.CompletedTask);
            });

            subscriber.Start();


            var recieved = gate.Wait(TimeSpan.FromSeconds(10));

            Assert.True(recieved);
            Assert.NotEqual("{\"event\":\"auth\",\"status\":\"FAILED\",\"chanId\":0,\"code\":10100,\"msg\":\"apikey: invalid\"}", response);
        }