diff --git a/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj b/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj index 7595590..8191215 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj +++ b/Plugins/BTCPayServer.Plugins.Blink/BTCPayServer.Plugins.Blink.csproj @@ -9,7 +9,7 @@ Blink Brink Lightning support - 1.0.1 + 1.0.2 true BTCPayServer.Plugins.Blink diff --git a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs index 055a852..b33ef59 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs +++ b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningClient.cs @@ -28,6 +28,9 @@ public class BlinkLightningClient : ILightningClient private readonly string _apiKey; private readonly Uri _apiEndpoint; public string? WalletId { get; set; } + + public string? WalletCurrency { get; set; } + private readonly Network _network; private readonly NBXplorerDashboard _nbXplorerDashboard; private readonly GraphQLHttpClient _client; @@ -301,8 +304,8 @@ query Transactions($walletId: WalletId!) { var reques = new GraphQLRequest { Query = @" -mutation LnInvoiceCreate($input: LnInvoiceCreateInput!) { - lnInvoiceCreate(input: $input) { +mutation lnInvoiceCreateOnBehalfOfRecipient($input: LnInvoiceCreateOnBehalfOfRecipientInput!) { + lnInvoiceCreateOnBehalfOfRecipient(input: $input) { invoice { createdAt paymentHash @@ -310,7 +313,6 @@ mutation LnInvoiceCreate($input: LnInvoiceCreateInput!) { paymentSecret paymentStatus satoshis - } } }", @@ -319,8 +321,9 @@ mutation LnInvoiceCreate($input: LnInvoiceCreateInput!) { { input = new { - walletId = WalletId, - memo = createInvoiceRequest.Description?? createInvoiceRequest.DescriptionHash?.ToString(), + recipientWalletId = WalletId, + memo = createInvoiceRequest.Description, + descriptionHash = createInvoiceRequest.DescriptionHash?.ToString(), amount = (long)createInvoiceRequest.Amount.ToUnit(LightMoneyUnit.Satoshi), expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes @@ -543,6 +546,7 @@ query GetWallet($walletId: WalletId!) { var response = await _client.SendQueryAsync(request, cancellation); + WalletCurrency = response.Data.me.defaultAccount.walletById.walletCurrency; if (response.Data.me.defaultAccount.walletById.walletCurrency == "BTC") { return new LightningNodeBalance() @@ -556,8 +560,6 @@ query GetWallet($walletId: WalletId!) { return new LightningNodeBalance(); } - - public async Task Pay(PayInvoiceParams payParams, CancellationToken cancellation = new CancellationToken()) diff --git a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs index 83dd3f6..5e468b8 100644 --- a/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs +++ b/Plugins/BTCPayServer.Plugins.Blink/BlinkLightningConnectionStringHandler.cs @@ -109,6 +109,12 @@ public class BlinkLightningConnectionStringHandler : ILightningConnectionStringH try { bclient.GetBalance().GetAwaiter().GetResult(); + if (!bclient.WalletCurrency.Equals("btc", StringComparison.InvariantCultureIgnoreCase)) + { + error = "Cannot use a non BTC denominated wallet"; + return null; + + } } catch (Exception e) {