From 9ed4409e258697ff6ce5f2a1890af70a9d31c375 Mon Sep 17 00:00:00 2001 From: naturallaw777 <99053422+naturallaw777@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:45:06 +0000 Subject: [PATCH] Add NWC channel liquidity guide and UI/UX explanation for new LND nodes Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com> --- .../static/css/modals.css | 59 +++++++++++++++++++ .../static/js/service-detail.js | 42 ++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/app/sovran_systemsos_web/static/css/modals.css b/app/sovran_systemsos_web/static/css/modals.css index 17b967d..e5ba26e 100644 --- a/app/sovran_systemsos_web/static/css/modals.css +++ b/app/sovran_systemsos_web/static/css/modals.css @@ -546,3 +546,62 @@ button.btn-reboot:hover:not(:disabled) { .nwc-share-formats-hint { text-align: center; } + +/* ── NWC Liquidity Guide Card ────────────────────────────────────── */ + +.nwc-liquidity-guide-card { + background: rgba(255, 255, 255, 0.02); + border: 1px solid var(--border-color); + border-radius: 12px; + padding: 16px; + margin-bottom: 16px; + color: var(--text-primary); +} + +.nwc-liquidity-header { + display: flex; + gap: 12px; + align-items: flex-start; + margin-bottom: 12px; +} + +.nwc-liquidity-icon { + font-size: 24px; +} + +.nwc-liquidity-steps { + display: flex; + flex-direction: column; + gap: 10px; + margin-bottom: 14px; +} + +.nwc-liquidity-step { + display: flex; + gap: 10px; + align-items: flex-start; + font-size: 0.85rem; +} + +.step-num { + background: var(--accent-color); + color: #0A1A10; + width: 20px; + height: 20px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 0.75rem; + flex-shrink: 0; + margin-top: 1px; +} + +.nwc-liquidity-action { + background: rgba(109, 191, 139, 0.08); + border-left: 3px solid var(--green); + padding: 10px 12px; + border-radius: 0 8px 8px 0; + font-size: 0.82rem; +} diff --git a/app/sovran_systemsos_web/static/js/service-detail.js b/app/sovran_systemsos_web/static/js/service-detail.js index 85a7a9e..7acee5d 100644 --- a/app/sovran_systemsos_web/static/js/service-detail.js +++ b/app/sovran_systemsos_web/static/js/service-detail.js @@ -634,9 +634,41 @@ async function openServiceDetailModal(unit, name, icon) { // Section E: Credentials & Links if (_isNwcServiceUnit(unit)) { html += '
' + - '
Wallet Connections
'; + '
Wallet Connections & Node Liquidity
'; if (effectiveEnabled || data.enabled) { - html += '

Create, verify, drain, and delete isolated NWC wallet connections without leaving the Hub.

' + + html += '
' + + '
' + + '' + + '
' + + '

Lightning Channel & Liquidity Guide

' + + '

How NWC & Lightning Addresses work on new nodes

' + + '
' + + '
' + + '

' + + 'Your Alby Hub, NWC pairing keys, and Lightning Address endpoints (like name@yourdomain.com) are set up and working instantly. However, sending and receiving actual Bitcoin payments requires an operational Lightning node with active channels.' + + '

' + + '
' + + '
' + + '
1
' + + '
' + + 'Outbound Liquidity (Sending)' + + '

Required so apps connected via NWC can pay invoices and send funds.

' + + '
' + + '
' + + '
' + + '
2
' + + '
' + + 'Inbound Liquidity (Receiving)' + + '

Required so your Lightning Address can receive incoming payments from anyone.

' + + '
' + + '
' + + '
' + + '
' + + '

💧 The Plumbing Analogy: Think of channels like two-way water pipes. To pour water in (receive) or pump water out (send), you need open channels with liquidity on both sides.

' + + '' + + '
' + + '
' + + '

Create, verify, drain, and delete isolated NWC wallet connections without leaving the Hub.

' + '

Loading wallet connections…

'; } else { html += '

Wallet Connections is disabled. Enable this feature below, rebuild, then return here to create and manage NWC wallet connections.

'; @@ -725,6 +757,12 @@ async function openServiceDetailModal(unit, name, icon) { _attachCopyHandlers($credsBody); if (_isNwcServiceUnit(unit) && (effectiveEnabled || data.enabled)) { await _nwcInitWalletFlow(unit, name, icon); + var nwcRtlBtn = document.getElementById("nwc-open-rtl-btn"); + if (nwcRtlBtn) { + nwcRtlBtn.addEventListener("click", function() { + openServiceDetailModal("rtl.service", "Ride The Lightning", "rtl"); + }); + } } if (unit === "matrix-synapse.service") {