Upgrade Lightning lib; add and pass cancellation tokens in Greenfield

This commit is contained in:
Dennis Reimann
2022-05-18 15:22:08 +02:00
committed by Andrew Camilleri
parent 5328303c32
commit 5a4b675791
5 changed files with 17 additions and 17 deletions

View File

@@ -28,8 +28,8 @@
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" /> <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BTCPayServer.Lightning.Common" Version="1.3.4" />
<PackageReference Include="NBitcoin" Version="7.0.1" /> <PackageReference Include="NBitcoin" Version="7.0.1" />
<PackageReference Include="BTCPayServer.Lightning.Common" Version="1.3.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -49,9 +49,9 @@ namespace BTCPayServer.Controllers.Greenfield
[Authorize(Policy = Policies.CanUseInternalLightningNode, [Authorize(Policy = Policies.CanUseInternalLightningNode,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)] AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/server/lightning/{cryptoCode}/connect")] [HttpPost("~/api/v1/server/lightning/{cryptoCode}/connect")]
public override Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request) public override Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request, CancellationToken cancellationToken = default)
{ {
return base.ConnectToNode(cryptoCode, request); return base.ConnectToNode(cryptoCode, request, cancellationToken);
} }
[Authorize(Policy = Policies.CanUseInternalLightningNode, [Authorize(Policy = Policies.CanUseInternalLightningNode,
@@ -73,9 +73,9 @@ namespace BTCPayServer.Controllers.Greenfield
[Authorize(Policy = Policies.CanUseInternalLightningNode, [Authorize(Policy = Policies.CanUseInternalLightningNode,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)] AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/server/lightning/{cryptoCode}/address")] [HttpPost("~/api/v1/server/lightning/{cryptoCode}/address")]
public override Task<IActionResult> GetDepositAddress(string cryptoCode) public override Task<IActionResult> GetDepositAddress(string cryptoCode, CancellationToken cancellationToken = default)
{ {
return base.GetDepositAddress(cryptoCode); return base.GetDepositAddress(cryptoCode, cancellationToken);
} }
[Authorize(Policy = Policies.CanUseInternalLightningNode, [Authorize(Policy = Policies.CanUseInternalLightningNode,

View File

@@ -51,9 +51,9 @@ namespace BTCPayServer.Controllers.Greenfield
[Authorize(Policy = Policies.CanUseLightningNodeInStore, [Authorize(Policy = Policies.CanUseLightningNodeInStore,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)] AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/stores/{storeId}/lightning/{cryptoCode}/connect")] [HttpPost("~/api/v1/stores/{storeId}/lightning/{cryptoCode}/connect")]
public override Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request) public override Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request, CancellationToken cancellationToken = default)
{ {
return base.ConnectToNode(cryptoCode, request); return base.ConnectToNode(cryptoCode, request, cancellationToken);
} }
[Authorize(Policy = Policies.CanUseLightningNodeInStore, [Authorize(Policy = Policies.CanUseLightningNodeInStore,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)] AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
@@ -73,9 +73,9 @@ namespace BTCPayServer.Controllers.Greenfield
[Authorize(Policy = Policies.CanUseLightningNodeInStore, [Authorize(Policy = Policies.CanUseLightningNodeInStore,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)] AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/stores/{storeId}/lightning/{cryptoCode}/address")] [HttpPost("~/api/v1/stores/{storeId}/lightning/{cryptoCode}/address")]
public override Task<IActionResult> GetDepositAddress(string cryptoCode) public override Task<IActionResult> GetDepositAddress(string cryptoCode, CancellationToken cancellationToken = default)
{ {
return base.GetDepositAddress(cryptoCode); return base.GetDepositAddress(cryptoCode, cancellationToken);
} }
[Authorize(Policy = Policies.CanUseLightningNodeInStore, [Authorize(Policy = Policies.CanUseLightningNodeInStore,

View File

@@ -48,7 +48,7 @@ namespace BTCPayServer.Controllers.Greenfield
}); });
} }
public virtual async Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request) public virtual async Task<IActionResult> ConnectToNode(string cryptoCode, ConnectToNodeRequest request, CancellationToken cancellationToken = default)
{ {
var lightningClient = await GetLightningClient(cryptoCode, true); var lightningClient = await GetLightningClient(cryptoCode, true);
if (request?.NodeURI is null) if (request?.NodeURI is null)
@@ -61,7 +61,7 @@ namespace BTCPayServer.Controllers.Greenfield
return this.CreateValidationError(ModelState); return this.CreateValidationError(ModelState);
} }
var result = await lightningClient.ConnectTo(request.NodeURI); var result = await lightningClient.ConnectTo(request.NodeURI, cancellationToken);
switch (result) switch (result)
{ {
case ConnectionResult.Ok: case ConnectionResult.Ok:
@@ -156,10 +156,10 @@ namespace BTCPayServer.Controllers.Greenfield
return this.CreateAPIError(errorCode, errorMessage); return this.CreateAPIError(errorCode, errorMessage);
} }
public virtual async Task<IActionResult> GetDepositAddress(string cryptoCode) public virtual async Task<IActionResult> GetDepositAddress(string cryptoCode, CancellationToken cancellationToken = default)
{ {
var lightningClient = await GetLightningClient(cryptoCode, true); var lightningClient = await GetLightningClient(cryptoCode, true);
return Ok(new JValue((await lightningClient.GetDepositAddress()).ToString())); return Ok(new JValue((await lightningClient.GetDepositAddress(cancellationToken)).ToString()));
} }
public virtual async Task<IActionResult> GetPayment(string cryptoCode, string paymentHash, CancellationToken cancellationToken = default) public virtual async Task<IActionResult> GetPayment(string cryptoCode, string paymentHash, CancellationToken cancellationToken = default)

View File

@@ -495,7 +495,7 @@ namespace BTCPayServer.Controllers.Greenfield
public override async Task ConnectToLightningNode(string storeId, string cryptoCode, public override async Task ConnectToLightningNode(string storeId, string cryptoCode,
ConnectToNodeRequest request, CancellationToken token = default) ConnectToNodeRequest request, CancellationToken token = default)
{ {
HandleActionResult(await _storeLightningNodeApiController.ConnectToNode(cryptoCode, request)); HandleActionResult(await _storeLightningNodeApiController.ConnectToNode(cryptoCode, request, token));
} }
public override async Task<IEnumerable<LightningChannelData>> GetLightningNodeChannels(string storeId, public override async Task<IEnumerable<LightningChannelData>> GetLightningNodeChannels(string storeId,
@@ -516,7 +516,7 @@ namespace BTCPayServer.Controllers.Greenfield
CancellationToken token = default) CancellationToken token = default)
{ {
return GetFromActionResult<string>( return GetFromActionResult<string>(
await _storeLightningNodeApiController.GetDepositAddress(cryptoCode)); await _storeLightningNodeApiController.GetDepositAddress(cryptoCode, token));
} }
public override async Task PayLightningInvoice(string storeId, string cryptoCode, public override async Task PayLightningInvoice(string storeId, string cryptoCode,
@@ -549,7 +549,7 @@ namespace BTCPayServer.Controllers.Greenfield
public override async Task ConnectToLightningNode(string cryptoCode, ConnectToNodeRequest request, public override async Task ConnectToLightningNode(string cryptoCode, ConnectToNodeRequest request,
CancellationToken token = default) CancellationToken token = default)
{ {
HandleActionResult(await _lightningNodeApiController.ConnectToNode(cryptoCode, request)); HandleActionResult(await _lightningNodeApiController.ConnectToNode(cryptoCode, request, token));
} }
public override async Task<IEnumerable<LightningChannelData>> GetLightningNodeChannels(string cryptoCode, public override async Task<IEnumerable<LightningChannelData>> GetLightningNodeChannels(string cryptoCode,
@@ -569,7 +569,7 @@ namespace BTCPayServer.Controllers.Greenfield
CancellationToken token = default) CancellationToken token = default)
{ {
return GetFromActionResult<string>( return GetFromActionResult<string>(
await _lightningNodeApiController.GetDepositAddress(cryptoCode)); await _lightningNodeApiController.GetDepositAddress(cryptoCode, token));
} }
public override async Task<LightningPaymentData> PayLightningInvoice(string cryptoCode, public override async Task<LightningPaymentData> PayLightningInvoice(string cryptoCode,