From c841c5e86baaf08230e5f2a265d5933dee88fc35 Mon Sep 17 00:00:00 2001 From: Kukks Date: Mon, 11 Dec 2023 08:41:39 +0100 Subject: [PATCH] upd bl and add libs on build --- BTCPayServerPlugins.sln | 11 +++ ...PayServer.Plugins.BitcoinWhitepaper.csproj | 1 + .../BTCPayServer.Plugins.Blink.csproj | 1 + .../BlinkLightningClient.cs | 53 ++++++++++++--- .../BlinkLightningConnectionStringHandler.cs | 68 ++++++++++++++----- .../Blink/LNPaymentMethodSetupTab.cshtml | 2 +- .../BTCPayServer.Plugins.Breez.csproj | 1 + .../BTCPayServer.Plugins.Bringin.csproj | 1 + .../BTCPayServer.Plugins.DataErasure.csproj | 1 + ...PayServer.Plugins.DynamicRateLimits.csproj | 1 + ...BTCPayServer.Plugins.DynamicReports.csproj | 1 + .../BTCPayServer.Plugins.FileSeller.csproj | 1 + .../BTCPayServer.Plugins.FixedFloat.csproj | 1 + .../BTCPayServer.Plugins.LDK.csproj | 3 +- .../BTCPayServer.Plugins.LiquidPlus.csproj | 1 + .../BTCPayServer.Plugins.NIP05.csproj | 1 + .../BTCPayServer.Plugins.Prism.csproj | 1 + .../BTCPayServer.Plugins.SideShift.csproj | 1 + .../BTCPayServer.Plugins.TicketTailor.csproj | 1 + .../BTCPayServer.Plugins.Wabisabi.csproj | 1 + 20 files changed, 122 insertions(+), 30 deletions(-) diff --git a/BTCPayServerPlugins.sln b/BTCPayServerPlugins.sln index 9b1b943..8f064c2 100644 --- a/BTCPayServerPlugins.sln +++ b/BTCPayServerPlugins.sln @@ -50,12 +50,15 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.FileSeller", "Plugins\BTCPayServer.Plugins.FileSeller\BTCPayServer.Plugins.FileSeller.csproj", "{F2D81B6A-E1EA-4900-BF9A-924D2CA951DD}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.Breez", "Plugins\BTCPayServer.Plugins.Breez\BTCPayServer.Plugins.Breez.csproj", "{5934F898-00B1-4781-BD18-04DF8685BC76}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.DynamicReports", "Plugins\BTCPayServer.Plugins.DynamicReports\BTCPayServer.Plugins.DynamicReports.csproj", "{BCB4E68D-089F-481E-A3AE-FC9CED6AA34D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.Bringin", "Plugins\BTCPayServer.Plugins.Bringin\BTCPayServer.Plugins.Bringin.csproj", "{D4AFEC95-64D4-4FC4-9AE4-B82F4C6D6E29}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.LDK", "Plugins\BTCPayServer.Plugins.LDK\BTCPayServer.Plugins.LDK.csproj", "{661DBF95-0F60-49C0-829A-C5997B44AF60}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.Blink", "Plugins\BTCPayServer.Plugins.Blink\BTCPayServer.Plugins.Blink.csproj", "{C0714C5C-1798-4576-9892-3CE097FDE76F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -272,6 +275,14 @@ Global {661DBF95-0F60-49C0-829A-C5997B44AF60}.Altcoins-Debug|Any CPU.Build.0 = Debug|Any CPU {661DBF95-0F60-49C0-829A-C5997B44AF60}.Altcoins-Release|Any CPU.ActiveCfg = Debug|Any CPU {661DBF95-0F60-49C0-829A-C5997B44AF60}.Altcoins-Release|Any CPU.Build.0 = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Release|Any CPU.Build.0 = Release|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Altcoins-Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Altcoins-Debug|Any CPU.Build.0 = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Altcoins-Release|Any CPU.ActiveCfg = Debug|Any CPU + {C0714C5C-1798-4576-9892-3CE097FDE76F}.Altcoins-Release|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {B19C9F52-DC47-466D-8B5C-2D202B7B003F} = {9E04ECE9-E304-4FF2-9CBC-83256E6C6962} diff --git a/Plugins/BTCPayServer.Plugins.BitcoinWhitepaper/BTCPayServer.Plugins.BitcoinWhitepaper.csproj b/Plugins/BTCPayServer.Plugins.BitcoinWhitepaper/BTCPayServer.Plugins.BitcoinWhitepaper.csproj index d5afbc4..5744dc0 100644 --- a/Plugins/BTCPayServer.Plugins.BitcoinWhitepaper/BTCPayServer.Plugins.BitcoinWhitepaper.csproj +++ b/Plugins/BTCPayServer.Plugins.BitcoinWhitepaper/BTCPayServer.Plugins.BitcoinWhitepaper.csproj @@ -11,6 +11,7 @@ Bitcoin Whitepaper This makes the Bitcoin whitepaper available on your BTCPay Server. 1.0.4 +true diff --git a/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj b/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj index 90a4bb8..8157cbc 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj +++ b/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj @@ -10,6 +10,7 @@ Blink Brink Lightning support 1.0.0 +true BTCPayServer.Plugins.Blink diff --git a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs index 786a453..055a852 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs +++ b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs @@ -27,7 +27,7 @@ public class BlinkLightningClient : ILightningClient { private readonly string _apiKey; private readonly Uri _apiEndpoint; - private readonly string _walletId; + public string? WalletId { get; set; } private readonly Network _network; private readonly NBXplorerDashboard _nbXplorerDashboard; private readonly GraphQLHttpClient _client; @@ -37,15 +37,16 @@ public class BlinkLightningClient : ILightningClient { _apiKey = apiKey; _apiEndpoint = apiEndpoint; - _walletId = walletId; + WalletId = walletId; _network = network; _nbXplorerDashboard = nbXplorerDashboard; _client = new GraphQLHttpClient(new GraphQLHttpClientOptions() {EndPoint = _apiEndpoint}, new NewtonsoftJsonSerializer(), httpClient); + } public override string ToString() { - return $"type=blink;server={_apiEndpoint};api-key={_apiKey};wallet-id={_walletId}"; + return $"type=blink;server={_apiEndpoint};api-key={_apiKey}{(WalletId is null? "":$";wallet-id={WalletId}")}"; } public async Task GetInvoice(string invoiceId, @@ -73,7 +74,7 @@ query InvoiceByPaymentHash($paymentHash: PaymentHash!, $walletId: WalletId!) { OperationName = "InvoiceByPaymentHash", Variables = new { - walletId = _walletId, + walletId = WalletId, paymentHash = invoiceId } }; @@ -146,7 +147,7 @@ query Invoices($walletId: WalletId!) { OperationName = "Invoices", Variables = new { - walletId = _walletId + walletId = WalletId } }; var response = await _client.SendQueryAsync(reques, cancellation); @@ -192,7 +193,7 @@ query TransactionsByPaymentHash($paymentHash: PaymentHash!, $walletId: WalletId! OperationName = "TransactionsByPaymentHash", Variables = new { - walletId = _walletId, + walletId = WalletId, paymentHash = paymentHash } }; @@ -277,7 +278,7 @@ query Transactions($walletId: WalletId!) { OperationName = "Transactions", Variables = new { - walletId = _walletId + walletId = WalletId } }; var response = await _client.SendQueryAsync(reques, cancellation); @@ -318,7 +319,7 @@ mutation LnInvoiceCreate($input: LnInvoiceCreateInput!) { { input = new { - walletId = _walletId, + walletId = WalletId, memo = createInvoiceRequest.Description?? createInvoiceRequest.DescriptionHash?.ToString(), amount = (long)createInvoiceRequest.Amount.ToUnit(LightMoneyUnit.Satoshi), expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes @@ -462,6 +463,38 @@ expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes } } + public async Task<(Network Network, string DefaultWalletId)> GetNetworkAndDefaultWallet(CancellationToken cancellation =default) + { + + var reques = new GraphQLRequest + { + Query = @" +query GetNetworkAndDefaultWallet { + globals { + network + } + me { + defaultAccount { + defaultWalletId + } + } +}", + OperationName = "GetNetworkAndDefaultWallet" + }; + + var response = await _client.SendQueryAsync(reques, cancellation); + + var defaultWalletId = (string) response.Data.me.defaultAccount.defaultWalletId; + var network = response.Data.globals.network.ToString() switch + { + "mainnet" => Network.Main, + "testnet" => Network.TestNet, + "regtest" => Network.RegTest, + _ => throw new ArgumentOutOfRangeException() + }; + return (network, defaultWalletId); + } + public async Task GetInfo(CancellationToken cancellation = new CancellationToken()) { @@ -504,7 +537,7 @@ query GetWallet($walletId: WalletId!) { }", OperationName = "GetWallet", Variables = new { - walletId = _walletId + walletId = WalletId } }; @@ -570,7 +603,7 @@ mutation LnInvoicePaymentSend($input: LnInvoicePaymentInput!) { OperationName = "LnInvoicePaymentSend", Variables = new { input = new { - walletId = _walletId, + walletId = WalletId, paymentRequest = bolt11, } } diff --git a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs index 1f07b32..4563883 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs +++ b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs @@ -8,19 +8,19 @@ using Network = NBitcoin.Network; namespace BTCPayServer.Plugins.Blink; - public class BlinkLightningConnectionStringHandler : ILightningConnectionStringHandler { private readonly IHttpClientFactory _httpClientFactory; private readonly NBXplorerDashboard _nbXplorerDashboard; - public BlinkLightningConnectionStringHandler(IHttpClientFactory httpClientFactory, NBXplorerDashboard nbXplorerDashboard) + public BlinkLightningConnectionStringHandler(IHttpClientFactory httpClientFactory, + NBXplorerDashboard nbXplorerDashboard) { _httpClientFactory = httpClientFactory; _nbXplorerDashboard = nbXplorerDashboard; } - - + + public ILightningClient? Create(string connectionString, Network network, out string? error) { var kv = LightningConnectionStringHelper.ExtractValues(connectionString, out var type); @@ -29,17 +29,20 @@ public class BlinkLightningConnectionStringHandler : ILightningConnectionStringH error = null; return null; } + if (!kv.TryGetValue("server", out var server)) { error = $"The key 'server' is mandatory for blink connection strings"; return null; } + if (!Uri.TryCreate(server, UriKind.Absolute, out var uri) || uri.Scheme != "http" && uri.Scheme != "https") { error = "The key 'server' should be an URI starting by http:// or https://"; return null; } + bool allowInsecure = false; if (kv.TryGetValue("allowinsecure", out var allowinsecureStr)) { @@ -52,40 +55,69 @@ public class BlinkLightningConnectionStringHandler : ILightningConnectionStringH allowInsecure = allowinsecureStr.Equals("true", StringComparison.OrdinalIgnoreCase); } - + if (!LightningConnectionStringHelper.VerifySecureEndpoint(uri, allowInsecure)) { error = "The key 'allowinsecure' is false, but server's Uri is not using https"; return null; } + if (!kv.TryGetValue("api-key", out var apiKey)) { error = "The key 'api-key' is not found"; return null; } - if (!kv.TryGetValue("wallet-id", out var walletId)) - { - error = "The key 'wallet-id' is not found"; - return null; - } error = null; - + var client = _httpClientFactory.CreateClient(); client.DefaultRequestHeaders.Add("X-Api-Key", apiKey); client.BaseAddress = uri; - + network = Network.Main; - var bclient = new BlinkLightningClient( apiKey, uri, walletId, network, _nbXplorerDashboard, client); - var result = bclient.GetBalance().GetAwaiter().GetResult(); - if (result is null) + kv.TryGetValue("wallet-id", out var walletId); + var bclient = new BlinkLightningClient(apiKey, uri, walletId, network, _nbXplorerDashboard, client); + (Network Network, string DefaultWalletId) res; + try { - error = "Invalid credentials"; + res = bclient.GetNetworkAndDefaultWallet().GetAwaiter().GetResult(); + if (res.Network != network) + { + error = $"The wallet is not on the right network ({res.Network.Name} instead of {network.Name})"; + return null; + } + + if (walletId is null && string.IsNullOrEmpty(res.DefaultWalletId)) + { + error = $"The wallet-id is not set and no default wallet is set"; + return null; + } + } + catch (Exception e) + { + error = $"Invalid server or api key"; return null; } - return bclient; - + + if (walletId is null) + { + bclient.WalletId = res.DefaultWalletId; + } + else + { + try + { + bclient.GetBalance().GetAwaiter().GetResult(); + } + catch (Exception e) + { + error = "Invalid wallet id"; + return null; + } + } + + return bclient; } } \ No newline at end of file diff --git a/Plugins/BTCPayServer.Plugins.Blink/Views/Shared/Blink/LNPaymentMethodSetupTab.cshtml b/Plugins/BTCPayServer.Plugins.Blink/Views/Shared/Blink/LNPaymentMethodSetupTab.cshtml index 08b3c42..6d57cbf 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/Views/Shared/Blink/LNPaymentMethodSetupTab.cshtml +++ b/Plugins/BTCPayServer.Plugins.Blink/Views/Shared/Blink/LNPaymentMethodSetupTab.cshtml @@ -32,7 +32,7 @@ type=blink;server=https://api.blink.sv/graphql;api-key=blink_...;wallet-id=xyz -

Head over to the dashboard for the wallet id and and create an api key.

+

Head over to the Blink dashboard and create an api key. The wallet-id is optional and will use the default wallet otherwise.

diff --git a/Plugins/BTCPayServer.Plugins.Breez/BTCPayServer.Plugins.Breez.csproj b/Plugins/BTCPayServer.Plugins.Breez/BTCPayServer.Plugins.Breez.csproj index 6038060..330664b 100644 --- a/Plugins/BTCPayServer.Plugins.Breez/BTCPayServer.Plugins.Breez.csproj +++ b/Plugins/BTCPayServer.Plugins.Breez/BTCPayServer.Plugins.Breez.csproj @@ -10,6 +10,7 @@ Breez / Greenlight Lightwight lightning baby! 1.0.0 +true diff --git a/Plugins/BTCPayServer.Plugins.Bringin/BTCPayServer.Plugins.Bringin.csproj b/Plugins/BTCPayServer.Plugins.Bringin/BTCPayServer.Plugins.Bringin.csproj index 3e3a6a5..97dfcba 100644 --- a/Plugins/BTCPayServer.Plugins.Bringin/BTCPayServer.Plugins.Bringin.csproj +++ b/Plugins/BTCPayServer.Plugins.Bringin/BTCPayServer.Plugins.Bringin.csproj @@ -10,6 +10,7 @@ Dynamic Reports Allows you to create custom reports using SQL. 1.0.0 +true diff --git a/Plugins/BTCPayServer.Plugins.DataErasure/BTCPayServer.Plugins.DataErasure.csproj b/Plugins/BTCPayServer.Plugins.DataErasure/BTCPayServer.Plugins.DataErasure.csproj index 10bebf1..116b6d7 100644 --- a/Plugins/BTCPayServer.Plugins.DataErasure/BTCPayServer.Plugins.DataErasure.csproj +++ b/Plugins/BTCPayServer.Plugins.DataErasure/BTCPayServer.Plugins.DataErasure.csproj @@ -10,6 +10,7 @@ Data Erasure Allows you to erase user data from invoices after a period of time. 1.0.2 +true diff --git a/Plugins/BTCPayServer.Plugins.DynamicRateLimits/BTCPayServer.Plugins.DynamicRateLimits.csproj b/Plugins/BTCPayServer.Plugins.DynamicRateLimits/BTCPayServer.Plugins.DynamicRateLimits.csproj index 62f0818..4688efe 100644 --- a/Plugins/BTCPayServer.Plugins.DynamicRateLimits/BTCPayServer.Plugins.DynamicRateLimits.csproj +++ b/Plugins/BTCPayServer.Plugins.DynamicRateLimits/BTCPayServer.Plugins.DynamicRateLimits.csproj @@ -10,6 +10,7 @@ Dynamic Rate Limit Allows you to override the default rate limiting. 1.0.1 +true diff --git a/Plugins/BTCPayServer.Plugins.DynamicReports/BTCPayServer.Plugins.DynamicReports.csproj b/Plugins/BTCPayServer.Plugins.DynamicReports/BTCPayServer.Plugins.DynamicReports.csproj index 30a1bfb..a55af6c 100644 --- a/Plugins/BTCPayServer.Plugins.DynamicReports/BTCPayServer.Plugins.DynamicReports.csproj +++ b/Plugins/BTCPayServer.Plugins.DynamicReports/BTCPayServer.Plugins.DynamicReports.csproj @@ -10,6 +10,7 @@ Dynamic Reports Allows you to create custom reports using SQL. 1.0.1 +true diff --git a/Plugins/BTCPayServer.Plugins.FileSeller/BTCPayServer.Plugins.FileSeller.csproj b/Plugins/BTCPayServer.Plugins.FileSeller/BTCPayServer.Plugins.FileSeller.csproj index d848b76..325043b 100644 --- a/Plugins/BTCPayServer.Plugins.FileSeller/BTCPayServer.Plugins.FileSeller.csproj +++ b/Plugins/BTCPayServer.Plugins.FileSeller/BTCPayServer.Plugins.FileSeller.csproj @@ -10,6 +10,7 @@ File Seller Allows you to sell files through the point of sale/crowdfund apps. 1.0.4 +true diff --git a/Plugins/BTCPayServer.Plugins.FixedFloat/BTCPayServer.Plugins.FixedFloat.csproj b/Plugins/BTCPayServer.Plugins.FixedFloat/BTCPayServer.Plugins.FixedFloat.csproj index b099aee..75869d5 100644 --- a/Plugins/BTCPayServer.Plugins.FixedFloat/BTCPayServer.Plugins.FixedFloat.csproj +++ b/Plugins/BTCPayServer.Plugins.FixedFloat/BTCPayServer.Plugins.FixedFloat.csproj @@ -10,6 +10,7 @@ FixedFloat Allows you to embed a FixedFloat conversion screen to allow customers to pay with altcoins. 1.1.6 +true diff --git a/Plugins/BTCPayServer.Plugins.LDK/BTCPayServer.Plugins.LDK.csproj b/Plugins/BTCPayServer.Plugins.LDK/BTCPayServer.Plugins.LDK.csproj index 0f65511..090a82f 100644 --- a/Plugins/BTCPayServer.Plugins.LDK/BTCPayServer.Plugins.LDK.csproj +++ b/Plugins/BTCPayServer.Plugins.LDK/BTCPayServer.Plugins.LDK.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 10 @@ -10,6 +10,7 @@ LDK The way lightning's meant to be 1.0.0 +true diff --git a/Plugins/BTCPayServer.Plugins.LiquidPlus/BTCPayServer.Plugins.LiquidPlus.csproj b/Plugins/BTCPayServer.Plugins.LiquidPlus/BTCPayServer.Plugins.LiquidPlus.csproj index 58f4896..7459f2c 100644 --- a/Plugins/BTCPayServer.Plugins.LiquidPlus/BTCPayServer.Plugins.LiquidPlus.csproj +++ b/Plugins/BTCPayServer.Plugins.LiquidPlus/BTCPayServer.Plugins.LiquidPlus.csproj @@ -12,6 +12,7 @@ Liquid+ Enhanced support for the liquid network. 1.1.3 +true diff --git a/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj b/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj index de7cef4..79d0a24 100644 --- a/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj +++ b/Plugins/BTCPayServer.Plugins.NIP05/BTCPayServer.Plugins.NIP05.csproj @@ -12,6 +12,7 @@ Nostr Allows you to verify your nostr account with NIP5 and zap like the rest of the crazies 1.1.3 +true diff --git a/Plugins/BTCPayServer.Plugins.Prism/BTCPayServer.Plugins.Prism.csproj b/Plugins/BTCPayServer.Plugins.Prism/BTCPayServer.Plugins.Prism.csproj index 0e5f31f..5a55c97 100644 --- a/Plugins/BTCPayServer.Plugins.Prism/BTCPayServer.Plugins.Prism.csproj +++ b/Plugins/BTCPayServer.Plugins.Prism/BTCPayServer.Plugins.Prism.csproj @@ -12,6 +12,7 @@ Prism Automated value splits for Bitcoin. 1.2.1 +true diff --git a/Plugins/BTCPayServer.Plugins.SideShift/BTCPayServer.Plugins.SideShift.csproj b/Plugins/BTCPayServer.Plugins.SideShift/BTCPayServer.Plugins.SideShift.csproj index 3b824fd..156dd38 100644 --- a/Plugins/BTCPayServer.Plugins.SideShift/BTCPayServer.Plugins.SideShift.csproj +++ b/Plugins/BTCPayServer.Plugins.SideShift/BTCPayServer.Plugins.SideShift.csproj @@ -10,6 +10,7 @@ SideShift Allows you to embed a SideShift conversion screen to allow customers to pay with altcoins. 1.1.13 +true diff --git a/Plugins/BTCPayServer.Plugins.TicketTailor/BTCPayServer.Plugins.TicketTailor.csproj b/Plugins/BTCPayServer.Plugins.TicketTailor/BTCPayServer.Plugins.TicketTailor.csproj index a02adbd..0f608c2 100644 --- a/Plugins/BTCPayServer.Plugins.TicketTailor/BTCPayServer.Plugins.TicketTailor.csproj +++ b/Plugins/BTCPayServer.Plugins.TicketTailor/BTCPayServer.Plugins.TicketTailor.csproj @@ -10,6 +10,7 @@ TicketTailor Allows you to integrate with TicketTailor.com to sell tickets for Bitcoin 2.0.0 +true diff --git a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj index 2bc6b44..04fba6e 100644 --- a/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj +++ b/Plugins/BTCPayServer.Plugins.Wabisabi/BTCPayServer.Plugins.Wabisabi.csproj @@ -14,6 +14,7 @@ Coinjoin Allows you to integrate your btcpayserver store with coinjoins. 1.0.67 +true