From af93cf2adbf3682ba364ce138b4ca25cb12b8a40 Mon Sep 17 00:00:00 2001 From: d11n Date: Tue, 21 Jun 2022 09:09:18 +0200 Subject: [PATCH] Lightning balance: Handle null values (#3886) * Lightning balance: Handle null values * Upgrade Lightning lib --- .../BTCPayServer.Client.csproj | 2 +- BTCPayServer/BTCPayServer.csproj | 2 +- .../StoreLightningBalance/Default.cshtml | 63 ++++++++++--------- .../StoreLightningBalance.cs | 12 ++-- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/BTCPayServer.Client/BTCPayServer.Client.csproj b/BTCPayServer.Client/BTCPayServer.Client.csproj index 6402ee67c..12e3a9739 100644 --- a/BTCPayServer.Client/BTCPayServer.Client.csproj +++ b/BTCPayServer.Client/BTCPayServer.Client.csproj @@ -28,7 +28,7 @@ - + diff --git a/BTCPayServer/BTCPayServer.csproj b/BTCPayServer/BTCPayServer.csproj index 8fe60cc20..e9f244df5 100644 --- a/BTCPayServer/BTCPayServer.csproj +++ b/BTCPayServer/BTCPayServer.csproj @@ -48,7 +48,7 @@ - + diff --git a/BTCPayServer/Components/StoreLightningBalance/Default.cshtml b/BTCPayServer/Components/StoreLightningBalance/Default.cshtml index ae2d98569..73a2c070f 100644 --- a/BTCPayServer/Components/StoreLightningBalance/Default.cshtml +++ b/BTCPayServer/Components/StoreLightningBalance/Default.cshtml @@ -21,29 +21,36 @@ } else { -
-
-

@Model.TotalOffchain

- @Model.CryptoCode in channels - @if (Model.TotalOffchain != LightMoney.Zero && Model.Balance.OffchainBalance != null) - { +
+ @if (Model.TotalOffchain != LightMoney.Zero && Model.Balance.OffchainBalance != null) + { +
+

@Model.TotalOffchain

+ @Model.CryptoCode in channels +
- @if (Model.Balance.OffchainBalance.Opening != LightMoney.Zero) + @if (Model.Balance.OffchainBalance.Opening != null && Model.Balance.OffchainBalance.Opening != LightMoney.Zero) {
@Model.Balance.OffchainBalance.Opening @Model.CryptoCode opening channels
} -
- @Model.Balance.OffchainBalance.Local - @Model.CryptoCode local balance -
-
- @Model.Balance.OffchainBalance.Remote - @Model.CryptoCode remote balance -
- @if (Model.Balance.OffchainBalance.Closing != LightMoney.Zero) + @if (Model.Balance.OffchainBalance.Local != null) + { +
+ @Model.Balance.OffchainBalance.Local + @Model.CryptoCode local balance +
+ } + @if (Model.Balance.OffchainBalance.Remote != null) + { +
+ @Model.Balance.OffchainBalance.Remote + @Model.CryptoCode remote balance +
+ } + @if (Model.Balance.OffchainBalance.Closing != null && Model.Balance.OffchainBalance.Closing != LightMoney.Zero) {
@Model.Balance.OffchainBalance.Closing @@ -51,29 +58,29 @@
}
- } -
-
-

@Model.TotalOnchain

- @Model.CryptoCode on-chain - @if (Model.TotalOnchain != LightMoney.Zero && Model.Balance.OnchainBalance != null) - { +
+ } + @if (Model.TotalOnchain != LightMoney.Zero && Model.Balance.OnchainBalance != null) + { +
+

@Model.TotalOnchain

+ @Model.CryptoCode on-chain
- @if (Model.Balance.OnchainBalance.Confirmed != LightMoney.Zero) + @if (Model.Balance.OnchainBalance.Confirmed != null && Model.Balance.OnchainBalance.Confirmed != LightMoney.Zero) {
@Model.Balance.OnchainBalance.Confirmed @Model.CryptoCode confirmed
} - @if (Model.Balance.OnchainBalance.Unconfirmed != LightMoney.Zero) + @if (Model.Balance.OnchainBalance.Unconfirmed != null && Model.Balance.OnchainBalance.Unconfirmed != LightMoney.Zero) {
@Model.Balance.OnchainBalance.Unconfirmed @Model.CryptoCode unconfirmed
} - @if (Model.Balance.OnchainBalance.Reserved != LightMoney.Zero) + @if (Model.Balance.OnchainBalance.Reserved != null && Model.Balance.OnchainBalance.Reserved != LightMoney.Zero) {
@Model.Balance.OnchainBalance.Reserved @@ -81,8 +88,8 @@
}
- } -
+
+ }
@if (Model.Balance.OffchainBalance != null && Model.Balance.OnchainBalance != null && (Model.TotalOffchain != LightMoney.Zero || Model.TotalOnchain != LightMoney.Zero)) { diff --git a/BTCPayServer/Components/StoreLightningBalance/StoreLightningBalance.cs b/BTCPayServer/Components/StoreLightningBalance/StoreLightningBalance.cs index 726133806..12a7ed29b 100644 --- a/BTCPayServer/Components/StoreLightningBalance/StoreLightningBalance.cs +++ b/BTCPayServer/Components/StoreLightningBalance/StoreLightningBalance.cs @@ -61,13 +61,13 @@ public class StoreLightningBalance : ViewComponent var balance = await lightningClient.GetBalance(); vm.Balance = balance; vm.TotalOnchain = balance.OnchainBalance != null - ? balance.OnchainBalance.Confirmed + balance.OnchainBalance.Reserved + - balance.OnchainBalance.Unconfirmed - : LightMoney.Zero; + ? (balance.OnchainBalance.Confirmed?? 0) + (balance.OnchainBalance.Reserved ?? 0) + + (balance.OnchainBalance.Unconfirmed ?? 0) + : null; vm.TotalOffchain = balance.OffchainBalance != null - ? balance.OffchainBalance.Opening + balance.OffchainBalance.Local + - balance.OffchainBalance.Closing - : LightMoney.Zero; + ? (balance.OffchainBalance.Opening?? 0) + (balance.OffchainBalance.Local?? 0) + + (balance.OffchainBalance.Closing?? 0) + : null; } catch (NotSupportedException) {