fix: LND UI CSS, QR codes, services tab, wallet creation, tx filtering

- LND UI: replace cdn.tailwindcss.com with local tailwind.css (CSP fix)
- LND UI: make asset paths relative for nginx proxy compatibility
- Web5 wallet: add QR code for on-chain receive addresses (qrcode npm)
- Web5 wallet: hide incoming transactions after 3 confirmations
- Apps: add "Services" tab to separate backend containers from user apps
- Home: null guard on packages.value to prevent TypeError on load
- First-boot: auto-create Bitcoin Knots wallet (no longer auto-created)
- AppSession: add mempool-electrs to port mapping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-16 15:34:04 +00:00
parent 30164fd12a
commit 9f6443b537
10 changed files with 720 additions and 39 deletions

View File

@@ -346,25 +346,11 @@
}
}
async function fetchTorInfo() {
try {
var resp = await fetch('/rpc/v1', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({ method: 'tor.list-services', params: {} })
});
var data = await resp.json();
if (data.result && data.result.services) {
var svc = data.result.services.find(function(s) {
return s.name === 'electrumx' || s.name === 'electrs' || s.local_port === 50001;
});
if (svc && svc.onion_address) {
torOnion = svc.onion_address;
updateConnectionInfo();
}
}
} catch(e) {}
function applyTorOnion(onion) {
if (onion) {
torOnion = onion;
updateConnectionInfo();
}
}
async function updateStatus() {
@@ -372,6 +358,11 @@
var resp = await fetch('electrs-status');
var data = await resp.json();
// Extract Tor onion from status response
if (data.tor_onion && !torOnion) {
applyTorOnion(data.tor_onion);
}
var indexedH = data.indexed_height || 0;
var networkH = data.network_height || 0;
var pct = data.progress_pct || 0;
@@ -426,7 +417,6 @@
updateStatus();
updateConnectionInfo();
fetchTorInfo();
setInterval(updateStatus, 5000);
</script>
</body>