feat(web): add PEZMessage on-chain E2E encrypted messaging UI

- x25519 ECDH + XChaCha20-Poly1305 encryption via @noble libs
- Key derivation from wallet signRaw, private key held in memory only
- Messaging pallet integration (registerEncryptionKey, sendMessage, inbox)
- Inbox polling every 12s, auto-decrypt when key unlocked
- ComposeDialog with recipient key validation and 512-byte limit
- Settings moved from grid to nav bar gear icon, PEZMessage takes its slot
- i18n translations for all 6 languages (en, tr, kmr, ckb, ar, fa)
This commit is contained in:
2026-03-03 08:29:16 +03:00
parent 86433a88ff
commit a9cb2972b9
17 changed files with 1429 additions and 19 deletions
+2
View File
@@ -61,6 +61,7 @@ const Forum = lazy(() => import('@/pages/Forum'));
const ForumTopic = lazy(() => import('@/pages/ForumTopic'));
const Telemetry = lazy(() => import('@/pages/Telemetry'));
const Subdomains = lazy(() => import('@/pages/Subdomains'));
const Messaging = lazy(() => import('@/pages/Messaging'));
// Network pages
const Mainnet = lazy(() => import('@/pages/networks/Mainnet'));
@@ -134,6 +135,7 @@ function App() {
<Route path="/forum/:id" element={<ForumTopic />} />
<Route path="/telemetry" element={<Telemetry />} />
<Route path="/subdomains" element={<Subdomains />} />
<Route path="/message" element={<Messaging />} />
{/* Network pages */}
<Route path="/mainnet" element={<Mainnet />} />
<Route path="/staging" element={<Staging />} />