Ejemplo n.º 1
0
 /// <summary>
 /// If user is not null, set user values in the CryptoEntry object
 /// </summary>
 /// <param name="user"></param>
 public CryptoEntry(BaseUser user)
 {
     if (user != null)
     {
         CryptoAlias      = user.CryptoAlias ?? "";
         CryptoCodeOption = CryptoCode.ETH;
         CryptoAddress    = user.CryptoAddress;
     }
 }
Ejemplo n.º 2
0
 public override string ToString()
 {
     return(CryptoCode.ToString());
 }
        private void StartNBXplorer()
        {
            var port = CustomServer.FreeTcpPort();
            List <(string key, string value)> keyValues = new List <(string key, string value)>();

            keyValues.Add(("conf", Path.Combine(datadir, "settings.config")));
            keyValues.Add(("datadir", datadir));
            keyValues.Add(("port", port.ToString()));
            keyValues.Add(("network", "regtest"));
            keyValues.Add(("instancename", Caller));
            keyValues.Add(("chains", CryptoCode.ToLowerInvariant()));
            keyValues.Add(("verbose", "1"));
            keyValues.Add(($"{CryptoCode.ToLowerInvariant()}rpcauth", Explorer.GetRPCAuth()));
            keyValues.Add(($"{CryptoCode.ToLowerInvariant()}rpcurl", Explorer.CreateRPCClient().Address.AbsoluteUri));
            keyValues.Add(("cachechain", "0"));
            keyValues.Add(("exposerpc", "1"));
            keyValues.Add(("rpcnotest", "1"));
            keyValues.Add(("trimevents", TrimEvents.ToString()));
            keyValues.Add(("mingapsize", "3"));
            keyValues.Add(("maxgapsize", "8"));
            keyValues.Add(($"{CryptoCode.ToLowerInvariant()}startheight", Explorer.CreateRPCClient().GetBlockCount().ToString()));
            keyValues.Add(($"{CryptoCode.ToLowerInvariant()}nodeendpoint", $"{Explorer.Endpoint.Address}:{Explorer.Endpoint.Port}"));
            keyValues.Add(("asbcnstr", AzureServiceBusTestConfig.ConnectionString));
            keyValues.Add(("asbblockq", AzureServiceBusTestConfig.NewBlockQueue));
            keyValues.Add(("asbtranq", AzureServiceBusTestConfig.NewTransactionQueue));
            keyValues.Add(("asbblockt", AzureServiceBusTestConfig.NewBlockTopic));
            keyValues.Add(("asbtrant", AzureServiceBusTestConfig.NewTransactionTopic));
            if (UseRabbitMQ)
            {
                keyValues.Add(("rmqhost", RabbitMqTestConfig.RabbitMqHostName));
                keyValues.Add(("rmqvirtual", RabbitMqTestConfig.RabbitMqVirtualHost));
                keyValues.Add(("rmquser", RabbitMqTestConfig.RabbitMqUsername));
                keyValues.Add(("rmqpass", RabbitMqTestConfig.RabbitMqPassword));
                keyValues.Add(("rmqtranex", RabbitMqTestConfig.RabbitMqTransactionExchange));
                keyValues.Add(("rmqblockex", RabbitMqTestConfig.RabbitMqBlockExchange));
            }
            var args = keyValues.SelectMany(kv => new[] { $"--{kv.key}", kv.value }
                                            .Concat(new[] { $"--{CryptoCode.ToLowerInvariant()}hastxindex" })).ToArray();

            Host = new WebHostBuilder()
                   .UseConfiguration(new DefaultConfiguration().CreateConfiguration(args))
                   .UseKestrel()
                   .ConfigureLogging(l =>
            {
                l.SetMinimumLevel(LogLevel.Information)
                .AddFilter("System.Net.Http.HttpClient", LogLevel.Error)
                .AddFilter("Microsoft", LogLevel.Error)
                .AddFilter("Hangfire", LogLevel.Error)
                .AddFilter("NBXplorer.Authentication.BasicAuthenticationHandler", LogLevel.Critical)
                .AddProvider(Logs.LogProvider);
            })
                   .UseStartup <Startup>()
                   .Build();

            RPC = ((RPCClientProvider)Host.Services.GetService(typeof(RPCClientProvider))).GetRPCClient(CryptoCode);
            NBXplorerNetwork = ((NBXplorerNetworkProvider)Host.Services.GetService(typeof(NBXplorerNetworkProvider))).GetFromCryptoCode(CryptoCode);
            var conf = (ExplorerConfiguration)Host.Services.GetService(typeof(ExplorerConfiguration));

            Host.Start();
            Configuration          = conf;
            _Client                = NBXplorerNetwork.CreateExplorerClient(Address);
            HttpClient             = ((IHttpClientFactory)Host.Services.GetService(typeof(IHttpClientFactory))).CreateClient();
            HttpClient.BaseAddress = Address;
            _Client.SetCookieAuth(Path.Combine(conf.DataDir, ".cookie"));
            Notifications = _Client.CreateLongPollingNotificationSession();
        }