diff --git a/neode-ui/mock-backend.js b/neode-ui/mock-backend.js index afbfb038..39b13e18 100755 --- a/neode-ui/mock-backend.js +++ b/neode-ui/mock-backend.js @@ -137,6 +137,14 @@ const SEED_WALLET = { { tx_hash: 'ab12cd34ef5678901234567890abcdef12345678', amount_sats: 2_000_000, direction: 'incoming', num_confirmations: 142, block_height: 892310, time_stamp: Math.floor(Date.now()/1000) - 86400, label: 'Channel funding', total_fees: 0, dest_addresses: [] }, { tx_hash: 'cd34ef5678901234567890abcdef1234567890ab', amount_sats: 250_000, direction: 'incoming', num_confirmations: 28, block_height: 892420, time_stamp: Math.floor(Date.now()/1000) - 7200, label: 'Faucet deposit', total_fees: 0, dest_addresses: [] }, { tx_hash: 'ff99ee88dd7766554433221100aabbccddeeff00', amount_sats: 100_000, direction: 'incoming', num_confirmations: 0, block_height: 0, time_stamp: Math.floor(Date.now()/1000) - 600, label: 'Incoming from faucet', total_fees: 0, dest_addresses: [] }, + // Networking profits — one or two per type, with human labels (these labels + // are intended for the production wallet UI too). + { tx_hash: '1a2b3c4d5e6f78901234567890abcdef11111111', amount_sats: 480_000, direction: 'incoming', num_confirmations: 64, block_height: 892387, time_stamp: Math.floor(Date.now()/1000) - 18000, label: 'Content sale · “Lightning Demo.mp4”', profit_type: 'content_sales', total_fees: 0, dest_addresses: [] }, + { tx_hash: '2b3c4d5e6f7890abcdef1234567890abcd222222', amount_sats: 312_500, direction: 'incoming', num_confirmations: 110, block_height: 892341, time_stamp: Math.floor(Date.now()/1000) - 43200, label: 'Content sale · “Sovereign Computing.pdf”', profit_type: 'content_sales', total_fees: 0, dest_addresses: [] }, + { tx_hash: '3c4d5e6f7890abcdef1234567890abcdef333333', amount_sats: 1_842, direction: 'incoming', num_confirmations: 12, block_height: 892439, time_stamp: Math.floor(Date.now()/1000) - 3600, label: 'Lightning routing fee', profit_type: 'routing_fees', total_fees: 0, dest_addresses: [] }, + { tx_hash: '4d5e6f7890abcdef1234567890abcdef44444444', amount_sats: 906, direction: 'incoming', num_confirmations: 5, block_height: 892446, time_stamp: Math.floor(Date.now()/1000) - 1500, label: 'Lightning routing fee', profit_type: 'routing_fees', total_fees: 0, dest_addresses: [] }, + { tx_hash: '5e6f7890abcdef1234567890abcdef5555555555', amount_sats: 64_200, direction: 'incoming', num_confirmations: 38, block_height: 892410, time_stamp: Math.floor(Date.now()/1000) - 9000, label: 'File relay reward', profit_type: 'relay', total_fees: 0, dest_addresses: [] }, + { tx_hash: '6f7890abcdef1234567890abcdef666666666666', amount_sats: 28_750, direction: 'incoming', num_confirmations: 21, block_height: 892428, time_stamp: Math.floor(Date.now()/1000) - 5400, label: 'Mesh relay forwarding fee', profit_type: 'relay', total_fees: 0, dest_addresses: [] }, ], } function randomHex(bytes) { return Array.from({length: bytes}, () => Math.floor(Math.random()*256).toString(16).padStart(2,'0')).join('') } @@ -208,7 +216,7 @@ function seedUserState() { } function seedMockState() { - return { analyticsEnabled: false } + return { analyticsEnabled: false, nodeVisibility: 'discoverable' } } console.log(`[Auth] Dev mode: ${DEV_MODE}${DEMO ? ' (DEMO multi-session)' : ''}`) @@ -1872,6 +1880,18 @@ app.post('/rpc/v1', (req, res) => { // ========================================================================= // Nostr // ========================================================================= + case 'nostr.list-relays': { + return res.json({ result: { relays: [ + { url: 'wss://relay.damus.io', connected: true, enabled: true, added_at: '2026-04-02T10:00:00Z' }, + { url: 'wss://nos.lol', connected: true, enabled: true, added_at: '2026-04-02T10:00:00Z' }, + { url: 'wss://relay.snort.social', connected: true, enabled: true, added_at: '2026-04-10T08:30:00Z' }, + { url: 'wss://nostr.wine', connected: false, enabled: true, added_at: '2026-05-01T14:00:00Z' }, + { url: 'wss://relay.archipelago.lan', connected: true, enabled: false, added_at: '2026-05-20T09:15:00Z' }, + ] } }) + } + case 'nostr.get-stats': { + return res.json({ result: { total_relays: 5, connected_count: 3, enabled_count: 4 } }) + } case 'nostr.add-relay': { const { url } = params || {} console.log(`[Nostr] Added relay: ${url}`) @@ -1886,6 +1906,36 @@ app.post('/rpc/v1', (req, res) => { return res.json({ result: { success: true } }) } + // VPN (WireGuard) status + case 'vpn.status': { + return res.json({ result: { + connected: true, + provider: 'wireguard', + interface: 'wg0', + ip_address: '10.64.12.7', + hostname: 'archipelago-demo', + peers_connected: 3, + bytes_in: 1_843_201_004, + bytes_out: 642_889_310, + } }) + } + + // Node visibility — interactive (persisted per demo session) + case 'network.get-visibility': { + return res.json({ result: { + visibility: mockState.nodeVisibility, + onion_address: mockData['server-info']['tor-address'], + } }) + } + case 'network.set-visibility': { + const v = params?.visibility + if (['hidden', 'discoverable', 'public'].includes(v)) mockState.nodeVisibility = v + return res.json({ result: { + visibility: mockState.nodeVisibility, + onion_address: mockData['server-info']['tor-address'], + } }) + } + // ========================================================================= // Content & Network // ========================================================================= @@ -2249,6 +2299,7 @@ app.post('/rpc/v1', (req, res) => { // ===================================================================== // Federation (multi-node clusters) // ===================================================================== + case 'federation.list': case 'federation.list-nodes': { return res.json({ result: { nodes: demoFederationNodes() } }) } @@ -2966,11 +3017,16 @@ app.post('/rpc/v1', (req, res) => { case 'wallet.networking-profits': { return res.json({ result: { - total_earned_sats: 42, - total_forwarded_sats: 35025, - forward_count: 3, + total_sats: 5_231_978, + content_sales_sats: 3_180_000, + routing_fees_sats: 1_281_978, + relay_sats: 770_000, + // legacy aliases kept for older UI builds + total_earned_sats: 5_231_978, + total_forwarded_sats: 1_281_978, + forward_count: 1284, period_days: 30, - daily_avg_sats: 1.4, + daily_avg_sats: 174_399, }, }) }