public IActionResult LndGrpcServicesPost(string cryptoCode, int index) { var external = GetExternalLndConnectionString(cryptoCode, index); if (external == null) { return(NotFound()); } LightningConfigurations confs = new LightningConfigurations(); LightningConfiguration conf = new LightningConfiguration(); conf.Type = "grpc"; conf.ChainType = _Options.NetworkType.ToString(); conf.CryptoCode = cryptoCode; conf.Host = external.BaseUri.DnsSafeHost; conf.Port = external.BaseUri.Port; conf.SSL = external.BaseUri.Scheme == "https"; conf.Macaroon = external.Macaroon == null ? null : Encoders.Hex.EncodeData(external.Macaroon); conf.CertificateThumbprint = external.CertificateThumbprint == null ? null : Encoders.Hex.EncodeData(external.CertificateThumbprint); confs.Configurations.Add(conf); var nonce = RandomUtils.GetUInt32(); var configKey = GetConfigKey("lnd-grpc", cryptoCode, index, nonce); _LnConfigProvider.KeepConfig(configKey, confs); return(RedirectToAction(nameof(LndGrpcServices), new { cryptoCode = cryptoCode, nonce = nonce })); }
public async Task <IActionResult> LndServicesPost(string cryptoCode, int index) { var external = GetExternalLndConnectionString(cryptoCode, index); if (external == null) { return(NotFound()); } LightningConfigurations confs = new LightningConfigurations(); var macaroons = external.MacaroonDirectoryPath == null ? null : await Macaroons.GetFromDirectoryAsync(external.MacaroonDirectoryPath); if (external.ConnectionType == LightningConnectionType.LndGRPC) { LightningConfiguration grpcConf = new LightningConfiguration(); grpcConf.Type = "grpc"; grpcConf.Host = external.BaseUri.DnsSafeHost; grpcConf.Port = external.BaseUri.Port; grpcConf.SSL = external.BaseUri.Scheme == "https"; confs.Configurations.Add(grpcConf); } else if (external.ConnectionType == LightningConnectionType.LndREST) { var restconf = new LNDRestConfiguration(); restconf.Type = "lnd-rest"; restconf.Uri = external.BaseUri.AbsoluteUri; confs.Configurations.Add(restconf); } else { throw new NotSupportedException(external.ConnectionType.ToString()); } var commonConf = (LNDConfiguration)confs.Configurations[confs.Configurations.Count - 1]; commonConf.ChainType = _Options.NetworkType.ToString(); commonConf.CryptoCode = cryptoCode; commonConf.Macaroon = external.Macaroon == null ? null : Encoders.Hex.EncodeData(external.Macaroon); commonConf.CertificateThumbprint = external.CertificateThumbprint == null ? null : Encoders.Hex.EncodeData(external.CertificateThumbprint); commonConf.AdminMacaroon = macaroons?.AdminMacaroon?.Hex; commonConf.ReadonlyMacaroon = macaroons?.ReadonlyMacaroon?.Hex; commonConf.InvoiceMacaroon = macaroons?.InvoiceMacaroon?.Hex; var nonce = RandomUtils.GetUInt32(); var configKey = GetConfigKey("lnd", cryptoCode, index, nonce); _LnConfigProvider.KeepConfig(configKey, confs); return(RedirectToAction(nameof(LndServices), new { cryptoCode = cryptoCode, nonce = nonce })); }
public IActionResult LNDGRPCServicesPOST(string cryptoCode) { if (!_Options.InternalLightningByCryptoCode.TryGetValue(cryptoCode.ToUpperInvariant(), out var connectionString)) { return(NotFound()); } var external = GetExternalLNDConnectionString(connectionString); LightningConfigurations confs = new LightningConfigurations(); LightningConfiguration conf = new LightningConfiguration(); conf.Type = "grpc"; conf.CryptoCode = cryptoCode; conf.Host = external.BaseUri.DnsSafeHost; conf.Port = external.BaseUri.Port; conf.SSL = external.BaseUri.Scheme == "https"; conf.Macaroon = external.Macaroon == null ? null : Encoders.Hex.EncodeData(external.Macaroon); conf.CertificateThumbprint = external.CertificateThumbprint == null ? null : Encoders.Hex.EncodeData(external.CertificateThumbprint); confs.Configurations.Add(conf); var secret = _LnConfigProvider.KeepConfig(confs); return(RedirectToAction(nameof(LNDGRPCServices), new { cryptoCode = cryptoCode, secret = secret })); }
public async Task <IActionResult> ServicePost(string serviceName, string cryptoCode) { if (!_dashBoard.IsFullySynched(cryptoCode, out var unusud)) { StatusMessage = $"Error: {cryptoCode} is not fully synched"; return(RedirectToAction(nameof(Services))); } var service = _Options.ExternalServices.GetService(serviceName, cryptoCode); if (service == null) { return(NotFound()); } ExternalConnectionString connectionString = null; try { connectionString = await service.ConnectionString.Expand(this.Request.GetAbsoluteUriNoPathBase(), service.Type); } catch (Exception ex) { StatusMessage = $"Error: {ex.Message}"; return(RedirectToAction(nameof(Services))); } LightningConfigurations confs = new LightningConfigurations(); if (service.Type == ExternalServiceTypes.LNDGRPC) { LightningConfiguration grpcConf = new LightningConfiguration(); grpcConf.Type = "grpc"; grpcConf.Host = connectionString.Server.DnsSafeHost; grpcConf.Port = connectionString.Server.Port; grpcConf.SSL = connectionString.Server.Scheme == "https"; confs.Configurations.Add(grpcConf); } else if (service.Type == ExternalServiceTypes.LNDRest) { var restconf = new LNDRestConfiguration(); restconf.Type = "lnd-rest"; restconf.Uri = connectionString.Server.AbsoluteUri; confs.Configurations.Add(restconf); } else { throw new NotSupportedException(service.Type.ToString()); } var commonConf = (LNDConfiguration)confs.Configurations[confs.Configurations.Count - 1]; commonConf.ChainType = _Options.NetworkType.ToString(); commonConf.CryptoCode = cryptoCode; commonConf.Macaroon = connectionString.Macaroon == null ? null : Encoders.Hex.EncodeData(connectionString.Macaroon); commonConf.CertificateThumbprint = connectionString.CertificateThumbprint == null ? null : connectionString.CertificateThumbprint; commonConf.AdminMacaroon = connectionString.Macaroons?.AdminMacaroon?.Hex; commonConf.ReadonlyMacaroon = connectionString.Macaroons?.ReadonlyMacaroon?.Hex; commonConf.InvoiceMacaroon = connectionString.Macaroons?.InvoiceMacaroon?.Hex; var nonce = RandomUtils.GetUInt32(); var configKey = GetConfigKey("lnd", serviceName, cryptoCode, nonce); _LnConfigProvider.KeepConfig(configKey, confs); return(RedirectToAction(nameof(Service), new { cryptoCode = cryptoCode, serviceName = serviceName, nonce = nonce })); }