@inject BTCPayServer.HostedServices.NBXplorerDashboard dashboard;
@functions {
private void Title(string name, string status)
{
@name
}
}
@foreach (var line in dashboard.GetAll().Where(summary => summary.Network.ShowSyncSummary))
{
@if (line.Status == null)
{
Title(line.Network.CryptoCode, "disabled");
- The node is offline
@if (line.Error != null)
{
- @StringLocalizer["Last error:"] @line.Error
}
}
else
{
@if (line.Status.BitcoinStatus == null)
{
if (line.State == BTCPayServer.HostedServices.NBXplorerState.Synching)
{
Title(line.Network.CryptoCode, "pending");
- @StringLocalizer["NBXplorer headers height: {0}", line.Status.ChainHeight]
- The node is starting...
}
else
{
Title(line.Network.CryptoCode, "disabled");
- @StringLocalizer["NBXplorer headers height: {0}", line.Status.ChainHeight]
- The node is offline
@if (line.Error != null)
{
- @StringLocalizer["Last error:"] line.Error
}
}
}
else if (line.Status.BitcoinStatus.IsSynched)
{
Title(line.Network.CryptoCode, "enabled");
- @StringLocalizer["The node is synchronized (Height: {0})", line.Status.BitcoinStatus.Headers]
@if (line.Status.BitcoinStatus.IsSynched &&
line.Status.SyncHeight.HasValue &&
line.Status.SyncHeight.Value < line.Status.BitcoinStatus.Headers)
{
- @StringLocalizer["NBXplorer is synchronizing... (Height: {0})", line.Status.SyncHeight.Value]
}
}
else
{
Title(line.Network.CryptoCode, "enabled");
- @StringLocalizer["Node headers height: {0}", line.Status.BitcoinStatus.Headers]
- @StringLocalizer["Validated blocks: {0}", line.Status.BitcoinStatus.Blocks]
}
@if (!line.Status.IsFullySynched && line.Status.BitcoinStatus != null)
{
var percent = (int)(line.Status.BitcoinStatus.VerificationProgress * 100);
}
}
}