mirror of
https://github.com/aljazceru/BTCPayServerPlugins.git
synced 2025-12-17 07:34:24 +01:00
Tweaking invoice listening logic for disconnections
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Product>Blink</Product>
|
<Product>Blink</Product>
|
||||||
<Description>Blink Lightning support</Description>
|
<Description>Blink Lightning support</Description>
|
||||||
<Version>1.0.10</Version>
|
<Version>1.0.11</Version>
|
||||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||||
<RootNamespace>BTCPayServer.Plugins.Blink</RootNamespace>
|
<RootNamespace>BTCPayServer.Plugins.Blink</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -408,12 +408,13 @@ expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes
|
|||||||
private readonly BlinkLightningClient _lightningClient;
|
private readonly BlinkLightningClient _lightningClient;
|
||||||
private readonly Channel<LightningInvoice> _invoices = Channel.CreateUnbounded<LightningInvoice>();
|
private readonly Channel<LightningInvoice> _invoices = Channel.CreateUnbounded<LightningInvoice>();
|
||||||
private readonly IDisposable _subscription;
|
private readonly IDisposable _subscription;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
|
||||||
public BlinkListener(GraphQLHttpClient httpClient, BlinkLightningClient lightningClient, ILogger logger)
|
public BlinkListener(GraphQLHttpClient httpClient, BlinkLightningClient lightningClient, ILogger logger)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
_logger = logger;
|
||||||
_lightningClient = lightningClient;
|
_lightningClient = lightningClient;
|
||||||
var stream = httpClient.CreateSubscriptionStream<JObject>(new GraphQLRequest()
|
var stream = httpClient.CreateSubscriptionStream<JObject>(new GraphQLRequest()
|
||||||
{
|
{
|
||||||
@@ -455,7 +456,7 @@ expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
logger.LogError(e, "Error while processing detecting lightning invoice payment");
|
_logger.LogError(e, "Error while processing detecting lightning invoice payment");
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -492,7 +493,8 @@ expiresIn = (int)createInvoiceRequest.Expiry.TotalMinutes
|
|||||||
return await res;
|
return await res;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception("Stream disconnected, cannot await invoice");
|
_logger.LogInformation("Stream disconnected, cannot await invoice. resultsz: "+ resultz);
|
||||||
|
return new LightningInvoice { Id = Guid.NewGuid().ToString() }; // Return a dummy invoice so calling listening logic exits
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public async Task<(Network Network, string DefaultWalletId, string DefaultWalletCurrency)> GetNetworkAndDefaultWallet(CancellationToken cancellation =default)
|
public async Task<(Network Network, string DefaultWalletId, string DefaultWalletCurrency)> GetNetworkAndDefaultWallet(CancellationToken cancellation =default)
|
||||||
|
|||||||
Reference in New Issue
Block a user