Files
zeekay 608243e03a refactor(pchain): Subnet -> Net; add the mainnet explorer ingress
Drops "subnet" from the P-chain surface, which is not our vocabulary:

    useSubnets          -> useNets      (useSubnets.ts deleted)
    PChainSubnet        -> PChainNet
    GetSubnetsResponse  -> GetNetsResponse

One "subnet" deliberately survives — `subnetID` in lib/api/pchain/wire.spec.ts.
That is the UPSTREAM P-chain wire field, read through a raw
Record<string,string> cast, so renaming it would break response parsing. The
rule is about our own language, not about lying to the wire.

Also adds deploy/k8s/explore-fe/ingress-mainnet.yaml. explore.lux.network is
served by the Next.js deployment explore-fe-lux (ghcr.io/luxfi/explore), not
the Go `explorer` binary, which only backs api-explore.lux.network. This
replaces drift where the plain Ingress pointed explore.lux.network at
explorer:80 — the Go binary's embedded, stale build.

Two pre-commit gates had to be satisfied, both legitimate:
- eslint max-len: three className lines (BridgePage 230 chars, ChainRow 188 x2)
  exceeded the 160 limit; wrapped.
- cspell: `platformvm` flagged unknown. It is the P-chain VM's actual name, so
  it is added to cspell.jsonc `words` rather than renamed in code. (Note for
  the next person: .cspell-words.txt is listed under ignorePaths — it is a file
  excluded from checking, NOT the dictionary. Adding a word there does nothing.)

Verified: tsc --noEmit reports ZERO errors in every file this commit touches and
zero stale-symbol errors, so the rename resolves completely. The project's 223
pre-existing errors are all in untouched files and unchanged by this commit.
2026-07-26 09:11:38 -07:00

36 lines
1.3 KiB
YAML

---
# Public ingress for the Lux mainnet explorer frontend.
#
# explore.lux.network is served by the dedicated Next.js deployment
# `explore-fe-lux` (ghcr.io/luxfi/explore), NOT the Go `explorer` binary. The
# Go binary only backs the API host api-explore.lux.network (separate ingress,
# ingress-api-mainnet.yaml). explore-fe-lux is self-contained: it renders every
# app page, serves /assets/envs.js from its own make_envs at startup, and
# proxies P-chain reads via its /api/pchain Next.js route — so the whole host
# routes to it. This replaces the earlier drift where the plain Ingress pointed
# explore.lux.network at explorer:80 (the Go binary's embedded, stale build).
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: explore-lux-network
namespace: lux-mainnet
labels: {app: explore-fe, brand: lux, network: mainnet}
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: ingress
tls:
- hosts: [explore.lux.network]
secretName: explore-lux-network-tls
rules:
- host: explore.lux.network
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: explore-fe-lux
port:
number: 80