reset to upstream blockscout/frontend, add Lux config overlay

Upstream had 1112 Turbopack errors from Chakra UI v3 API changes
accumulated during the old merge approach. Instead of fixing them,
reset to clean upstream/main and re-apply only Lux customizations:

- .github/workflows/build-lux.yml (CI -> ghcr.io/luxfi/explore)
- configs/envs/.env.lux (mainnet chain 96369)
- configs/envs/.env.lux_testnet (testnet chain 96368)
- LLM.md, CLAUDE.md, AGENTS.md (AI docs)
- cspell.jsonc: add luxfi to word list

All branding is via env vars at deploy time. Zero upstream code modified.
Build verified: pnpm lint:tsc (0 errors), pnpm build (success).
This commit is contained in:
2026-04-08 15:15:31 -07:00
parent e1258fcad6
commit 2624c865f2
7 changed files with 191 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
name: Docker
on:
push:
branches: [main, dev, test]
tags: ['v*']
workflow_dispatch:
jobs:
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v5
id: meta
with:
images: ghcr.io/luxfi/explore
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
type=raw,value=latest,enable={{is_default_branch}}
- uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
GIT_COMMIT_SHA=${{ github.sha }}
GIT_TAG=${{ github.ref_type == 'tag' && github.ref_name || '' }}
Symlink
+1
View File
@@ -0,0 +1 @@
LLM.md
Symlink
+1
View File
@@ -0,0 +1 @@
LLM.md
+43
View File
@@ -0,0 +1,43 @@
# Lux Network Explorer
Fork of [blockscout/frontend](https://github.com/blockscout/frontend).
## What This Is
Block explorer frontend for Lux Network C-Chain. Minimal fork -- upstream code plus Lux branding/config.
## Customizations Over Upstream
Only these files differ from upstream:
- `.github/workflows/build-lux.yml` -- CI to build `ghcr.io/luxfi/explore`
- `configs/envs/.env.lux` -- Lux mainnet env
- `configs/envs/.env.lux_testnet` -- Lux testnet env
- `LLM.md`, `CLAUDE.md`, `AGENTS.md` -- AI docs
All branding (logo, colors, footer) is via env vars at deploy time, not code changes.
## Syncing Upstream
```bash
git fetch upstream
git merge upstream/main
# Should be conflict-free since we don't modify upstream files
```
## Build
```bash
pnpm install
pnpm build
```
## Docker
CI builds `ghcr.io/luxfi/explore:{branch}` on push to main/dev/test.
## Network Config
| Network | Chain ID | RPC |
|---------|----------|-----|
| Mainnet | 96369 | api.lux.network/ext/bc/C/rpc |
| Testnet | 96368 | api.lux-test.network/ext/bc/C/rpc |
+50
View File
@@ -0,0 +1,50 @@
# Lux Network C-Chain Explorer
# https://explore.lux.network
# Local dev
NEXT_PUBLIC_APP_PROTOCOL=http
NEXT_PUBLIC_APP_HOST=localhost
NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
# API — Blockscout backend
NEXT_PUBLIC_API_PROTOCOL=https
NEXT_PUBLIC_API_HOST=explore.lux.network
NEXT_PUBLIC_API_BASE_PATH=/
# Network
NEXT_PUBLIC_NETWORK_NAME=Lux
NEXT_PUBLIC_NETWORK_SHORT_NAME=LUX
NEXT_PUBLIC_NETWORK_ID=96369
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=LUX
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=LUX
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_RPC_URL=https://api.lux.network/ext/bc/C/rpc
NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=validation
NEXT_PUBLIC_IS_TESTNET=false
# Branding
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_COLOR_THEME_DEFAULT=dark
NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 50%, #16213e 100%)
NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgb(255, 255, 255)
# Features
NEXT_PUBLIC_HAS_USER_OPS=false
NEXT_PUBLIC_HAS_BEACON_CHAIN=false
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{"title":"Remix IDE","url":"https://remix.ethereum.org/?address={hash}&blockscout={domain}","icon_url":"https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png"}]
# Disable ads
NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
# Footer
NEXT_PUBLIC_FOOTER_LINKS=[{"title":"Lux Network","links":[{"text":"About","url":"https://lux.network"},{"text":"Docs","url":"https://docs.lux.network"},{"text":"GitHub","url":"https://github.com/luxfi"}]}]
NEXT_PUBLIC_NETWORK_EXPLORERS=[]
# Custom branding (hides Blockscout logo)
NEXT_PUBLIC_IS_CUSTOM_BRANDING=true
+50
View File
@@ -0,0 +1,50 @@
# Lux Network Testnet C-Chain Explorer
# https://explore.lux-test.network
# Local dev
NEXT_PUBLIC_APP_PROTOCOL=http
NEXT_PUBLIC_APP_HOST=localhost
NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
# API — Blockscout backend
NEXT_PUBLIC_API_PROTOCOL=https
NEXT_PUBLIC_API_HOST=explore.lux-test.network
NEXT_PUBLIC_API_BASE_PATH=/
# Network
NEXT_PUBLIC_NETWORK_NAME=Lux Testnet
NEXT_PUBLIC_NETWORK_SHORT_NAME=LUX
NEXT_PUBLIC_NETWORK_ID=96368
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=LUX
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=LUX
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_RPC_URL=https://api.lux-test.network/ext/bc/C/rpc
NEXT_PUBLIC_NETWORK_VERIFICATION_TYPE=validation
NEXT_PUBLIC_IS_TESTNET=true
# Branding
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/luxfi/brand/main/logo/icon-white.svg
NEXT_PUBLIC_COLOR_THEME_DEFAULT=dark
NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 50%, #16213e 100%)
NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgb(255, 255, 255)
# Features
NEXT_PUBLIC_HAS_USER_OPS=false
NEXT_PUBLIC_HAS_BEACON_CHAIN=false
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{"title":"Remix IDE","url":"https://remix.ethereum.org/?address={hash}&blockscout={domain}","icon_url":"https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png"}]
# Disable ads
NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
# Footer
NEXT_PUBLIC_FOOTER_LINKS=[{"title":"Lux Network","links":[{"text":"About","url":"https://lux.network"},{"text":"Docs","url":"https://docs.lux.network"},{"text":"GitHub","url":"https://github.com/luxfi"}]}]
NEXT_PUBLIC_NETWORK_EXPLORERS=[]
# Custom branding
NEXT_PUBLIC_IS_CUSTOM_BRANDING=true
+1
View File
@@ -151,6 +151,7 @@
"llms",
"lokijs",
"LUKSO",
"luxfi",
"mainnets",
"megaeth",
"merkle",