Update HWI library, warn users to run newer version (#2544)

* Update HWI library, warn users to run newer version

* Update BTCPayServer/wwwroot/js/vaultbridge.ui.js

Co-authored-by: Zaxounette <51208677+Zaxounette@users.noreply.github.com>

* Update BTCPayServer/wwwroot/js/vaultbridge.ui.js

Co-authored-by: Pavlenex <pavle@pavle.org>

Co-authored-by: Zaxounette <51208677+Zaxounette@users.noreply.github.com>
Co-authored-by: Pavlenex <pavle@pavle.org>
This commit is contained in:
Nicolas Dorier
2021-06-06 21:02:15 +09:00
committed by GitHub
parent 64a7abe53a
commit e93b030bfe
8 changed files with 19 additions and 7 deletions

View File

@@ -27,7 +27,7 @@
<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="NBitcoin" Version="5.0.77" /> <PackageReference Include="NBitcoin" Version="5.0.81" />
<PackageReference Include="BTCPayServer.Lightning.Common" Version="1.2.0" /> <PackageReference Include="BTCPayServer.Lightning.Common" Version="1.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup> </ItemGroup>

View File

@@ -6,7 +6,7 @@
<FrameworkReference Include="Microsoft.AspNetCore.App" /> <FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.6.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.6.0" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" /> <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="NBitcoin" Version="5.0.77" /> <PackageReference Include="NBitcoin" Version="5.0.81" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="DigitalRuby.ExchangeSharp" Version="0.6.3" /> <PackageReference Include="DigitalRuby.ExchangeSharp" Version="0.6.3" />
</ItemGroup> </ItemGroup>

View File

@@ -45,7 +45,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="BIP78.Sender" Version="0.2.0" /> <PackageReference Include="BIP78.Sender" Version="0.2.0" />
<PackageReference Include="BTCPayServer.Hwi" Version="1.1.3" /> <PackageReference Include="BTCPayServer.Hwi" Version="2.0.1" />
<PackageReference Include="BTCPayServer.Lightning.All" Version="1.2.7" /> <PackageReference Include="BTCPayServer.Lightning.All" Version="1.2.7" />
<PackageReference Include="BuildBundlerMinifier" Version="3.2.449" /> <PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />
<PackageReference Include="BundlerMinifier.Core" Version="3.2.435" /> <PackageReference Include="BundlerMinifier.Core" Version="3.2.435" />

View File

@@ -32,7 +32,7 @@ namespace BTCPayServer.Controllers.GreenField
[Authorize(AuthenticationSchemes = AuthenticationSchemes.Greenfield)] [Authorize(AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpGet("~/api/v1/server/info")] [HttpGet("~/api/v1/server/info")]
public async Task<ActionResult> ServerInfo() public ActionResult ServerInfo()
{ {
var supportedPaymentMethods = _paymentMethodHandlerDictionary var supportedPaymentMethods = _paymentMethodHandlerDictionary
.SelectMany(handler => handler.GetSupportedPaymentMethods().Select(id => id.ToString())) .SelectMany(handler => handler.GetSupportedPaymentMethods().Select(id => id.ToString()))

View File

@@ -40,6 +40,7 @@ namespace BTCPayServer.Controllers
if (!HttpContext.WebSockets.IsWebSocketRequest) if (!HttpContext.WebSockets.IsWebSocketRequest)
return NotFound(); return NotFound();
cryptoCode = cryptoCode ?? walletId.CryptoCode; cryptoCode = cryptoCode ?? walletId.CryptoCode;
bool versionChecked = false;
using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10))) using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10)))
{ {
var cancellationToken = cts.Token; var cancellationToken = cts.Token;
@@ -272,6 +273,16 @@ namespace BTCPayServer.Controllers
goto askdevice; goto askdevice;
case "ask-device": case "ask-device":
askdevice: askdevice:
if (!versionChecked)
{
var version = await hwi.GetVersionAsync(cancellationToken);
if (version.Major < 2)
{
await websocketHelper.Send("{ \"error\": \"vault-outdated\"}", cancellationToken);
continue;
}
versionChecked = true;
}
password = null; password = null;
deviceEntry = null; deviceEntry = null;
device = null; device = null;

View File

@@ -167,7 +167,7 @@ namespace BTCPayServer.Payments.Lightning
} }
})); }));
leases.Add(_Aggregator.Subscribe<Events.InvoicePaymentMethodActivated>(async inv => leases.Add(_Aggregator.Subscribe<Events.InvoicePaymentMethodActivated>(inv =>
{ {
if (inv.PaymentMethodId.PaymentType == LightningPaymentType.Instance) if (inv.PaymentMethodId.PaymentType == LightningPaymentType.Instance)
{ {

View File

@@ -1,4 +1,4 @@
var vault = (function () { var vault = (function () {
/** @param {WebSocket} websocket /** @param {WebSocket} websocket
*/ */
function VaultBridge(websocket) { function VaultBridge(websocket) {
@@ -97,7 +97,7 @@
notRunning: "NotRunning", notRunning: "NotRunning",
denied: "Denied", denied: "Denied",
socketNotSupported: "SocketNotSupported", socketNotSupported: "SocketNotSupported",
socketError: "SocketError", socketError: "SocketError"
}, },
askVaultPermission: askVaultPermission, askVaultPermission: askVaultPermission,
connectToBackendSocket: connectToBackendSocket, connectToBackendSocket: connectToBackendSocket,

View File

@@ -32,6 +32,7 @@ var vaultui = (function () {
noWebsockets: new VaultFeedback("failed", "Web sockets are not supported by the browser.", "vault-feedback1", "no-websocket"), noWebsockets: new VaultFeedback("failed", "Web sockets are not supported by the browser.", "vault-feedback1", "no-websocket"),
errorWebsockets: new VaultFeedback("failed", "Error of the websocket while connecting to the backend.", "vault-feedback1", "error-websocket"), errorWebsockets: new VaultFeedback("failed", "Error of the websocket while connecting to the backend.", "vault-feedback1", "error-websocket"),
bridgeConnected: new VaultFeedback("ok", "BTCPayServer successfully connected to the vault.", "vault-feedback1", "bridge-connected"), bridgeConnected: new VaultFeedback("ok", "BTCPayServer successfully connected to the vault.", "vault-feedback1", "bridge-connected"),
vaultNeedUpdate: new VaultFeedback("failed", "Your BTCPay Server Vault version is outdated. Please <a target=\"_blank\" href=\"https://github.com/btcpayserver/BTCPayServer.Vault/releases/latest\">download</a> the latest version.", "vault-feedback2", "vault-outdated"),
noDevice: new VaultFeedback("failed", "No device connected.", "vault-feedback2", "no-device"), noDevice: new VaultFeedback("failed", "No device connected.", "vault-feedback2", "no-device"),
needInitialized: new VaultFeedback("failed", "The device has not been initialized.", "vault-feedback2", "need-initialized"), needInitialized: new VaultFeedback("failed", "The device has not been initialized.", "vault-feedback2", "need-initialized"),
fetchingDevice: new VaultFeedback("?", "Fetching device...", "vault-feedback2", "fetching-device"), fetchingDevice: new VaultFeedback("?", "Fetching device...", "vault-feedback2", "fetching-device"),