From bf91efc7566d0ec6d68155a0b1a7adb124b7b55f Mon Sep 17 00:00:00 2001 From: maxwedwards Date: Fri, 18 Nov 2022 11:19:01 +0000 Subject: [PATCH] Add Lightning Service Torq (#4296) --- .../Configuration/ExternalConnectionString.cs | 6 ++++-- BTCPayServer/Configuration/ExternalService.cs | 10 ++++++++-- BTCPayServer/Controllers/UIServerController.cs | 1 + BTCPayServer/Properties/launchSettings.json | 3 +++ BTCPayServer/wwwroot/img/torq.png | Bin 0 -> 5231 bytes 5 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 BTCPayServer/wwwroot/img/torq.png diff --git a/BTCPayServer/Configuration/ExternalConnectionString.cs b/BTCPayServer/Configuration/ExternalConnectionString.cs index b9bdc9c8f..819483355 100644 --- a/BTCPayServer/Configuration/ExternalConnectionString.cs +++ b/BTCPayServer/Configuration/ExternalConnectionString.cs @@ -77,7 +77,8 @@ namespace BTCPayServer.Configuration } } - if (new[] { ExternalServiceTypes.Charge, ExternalServiceTypes.RTL, ExternalServiceTypes.ThunderHub, ExternalServiceTypes.Spark, ExternalServiceTypes.Configurator }.Contains(serviceType)) + if (new[] { ExternalServiceTypes.Charge, ExternalServiceTypes.RTL, ExternalServiceTypes.ThunderHub, + ExternalServiceTypes.Spark, ExternalServiceTypes.Configurator, ExternalServiceTypes.Torq }.Contains(serviceType)) { // Read access key from cookie file if (connectionString.CookieFilePath != null) @@ -97,7 +98,8 @@ namespace BTCPayServer.Configuration } connectionString.CookieFilePath = null; - if (serviceType == ExternalServiceTypes.RTL || serviceType == ExternalServiceTypes.Configurator || serviceType == ExternalServiceTypes.ThunderHub) + if (serviceType == ExternalServiceTypes.RTL || serviceType == ExternalServiceTypes.Configurator || + serviceType == ExternalServiceTypes.ThunderHub || serviceType == ExternalServiceTypes.Torq) { connectionString.AccessKey = cookieFileContent; } diff --git a/BTCPayServer/Configuration/ExternalService.cs b/BTCPayServer/Configuration/ExternalService.cs index 0d8078408..4c3e19cae 100644 --- a/BTCPayServer/Configuration/ExternalService.cs +++ b/BTCPayServer/Configuration/ExternalService.cs @@ -36,6 +36,10 @@ namespace BTCPayServer.Configuration $"Valid example: 'server=https://btcpay.example.com/rtl/btc/;cookiefile=/etc/clightning_bitcoin_rtl/.cookie'" + Environment.NewLine + "Error: {1}", "Ride The Lightning"); + Load(configuration, cryptoCode, "torq", ExternalServiceTypes.Torq, "Invalid setting {0}, " + Environment.NewLine + + $"Valid example: 'server=https://btcpay.example.com/torq/cookie-login/;cookiefile=/etc/lnd_bitcoin_rtl/.cookie'" + Environment.NewLine + + "Error: {1}", + "Torq"); Load(configuration, cryptoCode, "thunderhub", ExternalServiceTypes.ThunderHub, "Invalid setting {0}, " + Environment.NewLine + $"Valid example: 'server=https://btcpay.example.com/thub/;cookiefile=/etc/clightning_bitcoin_rtl/.cookie'" + Environment.NewLine + "Error: {1}", @@ -93,7 +97,8 @@ namespace BTCPayServer.Configuration { ExternalServiceTypes.Spark, ExternalServiceTypes.RTL, - ExternalServiceTypes.ThunderHub + ExternalServiceTypes.ThunderHub, + ExternalServiceTypes.Torq }; public static readonly string[] LightningServiceNames = @@ -130,6 +135,7 @@ namespace BTCPayServer.Configuration P2P, RPC, Configurator, - CLightningRest + CLightningRest, + Torq } } diff --git a/BTCPayServer/Controllers/UIServerController.cs b/BTCPayServer/Controllers/UIServerController.cs index b24d5e834..8a9cfaa37 100644 --- a/BTCPayServer/Controllers/UIServerController.cs +++ b/BTCPayServer/Controllers/UIServerController.cs @@ -512,6 +512,7 @@ namespace BTCPayServer.Controllers case ExternalServiceTypes.RTL: case ExternalServiceTypes.ThunderHub: case ExternalServiceTypes.Spark: + case ExternalServiceTypes.Torq: if (connectionString.AccessKey == null) { TempData[WellKnownTempData.ErrorMessage] = $"The access key of the service is not set"; diff --git a/BTCPayServer/Properties/launchSettings.json b/BTCPayServer/Properties/launchSettings.json index 56175aed6..deabba81b 100644 --- a/BTCPayServer/Properties/launchSettings.json +++ b/BTCPayServer/Properties/launchSettings.json @@ -13,6 +13,7 @@ "BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake", "BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake", "BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake", + "BTCPAY_BTCEXTERNALTORQ": "server=/torq/cookie-login;cookiefile=fake", "BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;", "BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/", "BTCPAY_ALLOW-ADMIN-REGISTRATION": "true", @@ -48,6 +49,7 @@ "BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake", "BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake", "BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake", + "BTCPAY_BTCEXTERNALTORQ": "server=/torq/cookie-login;cookiefile=fake", "BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;", "BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator", "BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/", @@ -86,6 +88,7 @@ "BTCPAY_BTCEXTERNALCHARGE": "server=https://127.0.0.1:53280/mycharge/btc/;cookiefilepath=fake", "BTCPAY_BTCEXTERNALRTL": "server=/rtl/api/authenticate/cookie;cookiefile=fake", "BTCPAY_BTCEXTERNALTHUNDERHUB": "server=/thub/sso;cookiefile=fake", + "BTCPAY_BTCEXTERNALTORQ": "server=/torq/cookie-login;cookiefile=fake", "BTCPAY_EXTERNALSERVICES": "totoservice:totolink;Lightning Terminal:/lit/;", "BTCPAY_EXTERNALCONFIGURATOR": "passwordfile=testpwd;server=/configurator", "BTCPAY_BTCEXPLORERURL": "http://127.0.0.1:32838/", diff --git a/BTCPayServer/wwwroot/img/torq.png b/BTCPayServer/wwwroot/img/torq.png new file mode 100644 index 0000000000000000000000000000000000000000..703c58fd4562904e8af08b23636bfeca57a5396b GIT binary patch literal 5231 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