Skip to content

Moonlight-Protocol/network-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Dashboard

Public dashboard showing the state of the Moonlight network. Serves as the council discovery layer — councils register their contracts and jurisdictions, anyone can browse.

What it does

  • Map view: World map with councils plotted by declared jurisdiction, dot size reflects number of channels
  • Council list: All registered councils with on-chain state (supply, provider count, channel assets)
  • Transaction feed: Recent on-chain events across all channels (bundles, provider changes)
  • Council detail: Drill into a council to see its channels, providers, and activity

Development

# Install dependencies
deno install

# Build the app bundle
deno task build

# Start dev server (port 3030, watches for changes)
deno task dev

# Run tests
deno task test

Testing

Unit tests cover DOM helpers, SVG sanitization, provider counting logic, URL validation, config, and routing.

deno task test

Deployment

Static files are deployed to a public Tigris bucket on Fly.io.

Pipeline:

  1. Push to main triggers auto-version.yml (reads version from deno.json, creates git tag)
  2. Tag push (v*) triggers deploy.yml (generates config from secrets, builds production bundle, deploys to Tigris)

Manual deploy

deno task build -- --production
aws s3 sync public/ s3://network-dashboard/ \
  --endpoint-url https://fly.storage.tigris.dev \
  --acl public-read --delete

Architecture

Static SPA (no backend, no auth). Reads on-chain state via Stellar RPC. World map data fetched from jsDelivr CDN (Natural Earth TopoJSON). Council registry is a hardcoded config for MVP (eventually an API).

Browser
  ├── Stellar RPC ── contract queries (supply, events)
  ├── jsDelivr CDN ── world map TopoJSON
  └── Config (config.js) ── council registry, RPC URLs

GitHub Secrets

Required for CI deploys:

Secret Purpose
TIGRIS_ACCESS_KEY_ID Tigris CDN upload
TIGRIS_SECRET_ACCESS_KEY Tigris CDN upload
COUNCILS_JSON Council registry (JSON array)
AUTO_VERSION_TOKEN PAT for auto-tag workflow

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages