diff --git a/index.html b/index.html
index 967125b..8327418 100644
--- a/index.html
+++ b/index.html
@@ -156,6 +156,8 @@ tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}
#qrcode img{width:160px;height:160px}
.ok-line{color:var(--ok);font-weight:600;font-size:14px;margin-bottom:14px}
.err-line{color:#d32f2f;font-weight:600;font-size:14px;margin-bottom:14px}
+.flag-ok{color:var(--ok);font-weight:600;font-size:13px}
+.flag-err{color:#d32f2f;font-weight:600;font-size:13px}
.intro-card{
background:var(--panel);border:1px solid var(--line);
@@ -287,6 +289,7 @@ footer a{color:var(--accent);text-decoration:none}
Address—
Balance—
Status—
+ Server—
@@ -433,6 +436,26 @@ async function fetchData() {
}
}
+async function checkServer(url, chain) {
+ const flag = document.getElementById('iv-url-check');
+ flag.textContent = 'checking…';
+ flag.className = '';
+ try {
+ const r = await fetch(url + '/' + chain + '/info');
+ const data = await r.json();
+ if (data && data.address && data.base_fee != null) {
+ flag.textContent = '✓ verified';
+ flag.className = 'flag-ok';
+ } else {
+ flag.textContent = '✗ error';
+ flag.className = 'flag-err';
+ }
+ } catch (err) {
+ flag.textContent = '✗ error';
+ flag.className = 'flag-err';
+ }
+}
+
document.getElementById('onion').addEventListener('change', e => {
withTor = e.target.checked;
fetchData();
@@ -468,6 +491,9 @@ document.getElementById('submit').addEventListener('click', async () => {
document.getElementById('iv-addr').textContent = '—';
document.getElementById('iv-balance').textContent = '—';
document.getElementById('iv-status2').textContent = '—';
+ document.getElementById('iv-url').textContent = '—';
+ document.getElementById('iv-url-check').textContent = '';
+ document.getElementById('iv-url-check').className = '';
document.getElementById('qrcode').innerHTML = '';
const chain = getChain();
try {
@@ -495,6 +521,9 @@ document.getElementById('submit').addEventListener('click', async () => {
new QRCode(qrEl, invoiceuri);
inv.classList.add('show');
inv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
+ const serverUrl = result.url || url;
+ document.getElementById('iv-url').textContent = serverUrl;
+ checkServer(serverUrl, result.chain || chain);
} catch (err) {
document.getElementById('iv-status').className = 'err-line';
document.getElementById('iv-status').textContent = 'Network error. Please try again.';