+8
-10
src/App.svelte
+8
-10
src/App.svelte
···
362
362
<th>mempool</th>
363
363
<th>age</th>
364
364
<th>head</th>
365
-
<th>first</th>
365
+
<th>root</th>
366
366
<th>version</th>
367
367
<th>rsv?</th>
368
368
<th>ws?</th>
···
374
374
{#each orderBy(instances, ...instanceOrderBy) as instance}
375
375
<tr>
376
376
<td><a href={instance.url} target="_blank" class="font-semibold">{instance.url.replace("https://", "")}</a></td>
377
-
<td>{#if instance._head && instance.status?.ok}{#if instance._conflict}⚠️{:else}✅{/if}{:else if instance.status?.ok && instance._oldRoot}⚰️{:else if instance.status?.ok}🔄{:else if instance.status?.error}❌{:else}⌛{/if}</td>
377
+
<td>{#if instance._head && instance.status?.ok}{#if instance._conflict}⚠️{:else}✅{/if}{:else if instance.status?.ok && instance._oldRoot}🦇{:else if instance.status?.ok}🔄{:else if instance.status?.error}❌{:else}⌛{/if}</td>
378
378
{#if instance.status?.error}
379
-
<td colspan="5" class="opacity-50 text-xs">Error: {instance.status?.error}</td>
379
+
<td colspan="8" class="opacity-50 text-xs">Error: {instance.status?.error}</td>
380
380
{:else}
381
381
<td>{#if instance.status?.bundles?.last_bundle}<span class="{instance._conflict ? 'text-error-600' : ''}">{instance.status?.bundles?.last_bundle}</span>{/if}</td>
382
382
<td>{#if instance.status?.mempool && (instance._head || instance._oldRoot)}<span class="{instance._conflict ? 'text-error-600' : (instance._oldRoot ? 'text-warning-500 opacity-50' : '')}">{formatNumber(instance.status?.mempool.count)}</span>{:else if instance.status?.error}<span class="opacity-25 text-xs">error</span>{:else if instance.status}<span class="opacity-25 text-xs">syncing</span>{/if}</td>
···
393
393
</td>
394
394
<td><span class="font-mono text-xs {instance._head ? (instance._conflict ? 'text-error-600' : 'text-success-600') : (instance._oldRoot ? 'text-warning-500 opacity-50' : 'opacity-50')}">{#if instance.status?.bundles?.head_hash}{instance.status?.bundles?.head_hash.slice(0, 7)}{/if}</span></td>
395
395
<td><span class="font-mono text-xs {instance.status ? (instance.status?.bundles?.root_hash === ROOT ? 'text-success-600' : (PAST_ROOTS.includes(instance.status?.bundles?.root_hash) ? 'text-warning-500' : 'text-error-600')) : ''}">{#if instance.status?.bundles?.root_hash}{instance.status?.bundles?.root_hash.slice(0, 7)}{/if}</span></td>
396
+
<td class="text-xs">{#if instance.status?.server?.version}<span title={instance.status?.server?.version}>{normalizedVersion(instance.status?.server?.version)}</span>{/if}</td>
397
+
<td class="text-xs">{#if instance.status?.server?.resolver_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
398
+
<td class="text-xs">{#if instance.status?.server?.websocket_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
396
399
{/if}
397
-
398
-
<td class="text-xs">{#if instance.status?.server?.version}<span title={instance.status?.server?.version}>{normalizedVersion(instance.status?.server?.version)}</span>{/if}</td>
399
-
<td class="text-xs">{#if instance.status?.server?.resolver_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
400
-
<td class="text-xs">{#if instance.status?.server?.websocket_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
401
400
<td class="text-xs">{#if instance.status?.server?.uptime_seconds}{formatUptime(instance.status?.server?.uptime_seconds)}{/if}</td>
402
401
<td class="text-xs opacity-50">{#if instance.status?.latency}<a href="{instance.url}/status">{Math.round(instance.status?.latency)}ms</a>{/if}</td>
403
402
</tr>
···
418
417
Last updated: {formatISO9075(lastUpdated)}
419
418
</div>
420
419
</div>
421
-
<hr class="hr my-10" />
422
-
423
-
<BundleDownloader instances={instances} />
420
+
<!--hr class="hr my-10" /-->
421
+
<!--BundleDownloader instances={instances} /-->
424
422
425
423
<hr class="hr mb-6 mt-12" />
426
424
<div class="opacity-50">
+12
-3
src/instances.json
+12
-3
src/instances.json
···
15
15
"maintainer": "@tree.fail"
16
16
},
17
17
{
18
-
"url": "https://plc.j4ck.xyz"
18
+
"url": "https://plc.j4ck.xyz",
19
+
"country": "UK",
20
+
"maintainer": "@j4ck.xyz"
19
21
},
20
22
{
21
-
"url": "https://plc.indexx.dev"
23
+
"url": "https://plc.indexx.dev",
24
+
"country": "US",
25
+
"maintainer": "@indexx.dev"
22
26
},
23
27
{
24
28
"url": "https://plc.nyxt.dev"
25
29
},
26
30
{
27
-
"url": "https://plc.madebydanny.uk"
31
+
"url": "https://plc.madebydanny.uk",
32
+
"country": "US",
33
+
"maintainer": "@madebydanny.uk"
28
34
},
29
35
{
30
36
"url": "https://plc.tartarus.us"
···
38
44
"url": "https://plc.dane.computer",
39
45
"country": "CA",
40
46
"maintainer": "@dane.is.extraordinarily.cool"
47
+
},
48
+
{
49
+
"url": "https://plc.witchcraft.systems"
41
50
}
42
51
]