zeekayandHanzo Dev 521e47ab47 fix(explore): a failed validator read printed 0, not "unknown"
/validators reported "0 validators / 0 LUX staked" about a network running
five with 2,500,000,000 LUX bonded. Measured now against the live P-Chain:

  POST https://api.lux.network/ext/bc/P platform.getCurrentValidators
    -> 5 validators, sum(weight) 2500000000000000000 nLUX = 2,500,000,000 LUX

(P-chain figures are nLUX, 1e9 — and the rows carry `weight`, not
`stakeAmount`, which is why the reader already falls back.)

useCurrentValidators returns a ZEROED ValidatorStats when the query fails,
and a zeroed stat is indistinguishable from a chain with no validators.
NetworkOverview and NetworkStats each guarded against that with their own
copy of `!isError && validatorCount > 0`; ValidatorsPage and
ValidatorsDashboard had no guard at all, so they rendered the zeros —
"Validators (0)", "Delegators (0)", "0 LUX Total Stake" — as if measured.

The question "did the read answer?" now has exactly one answer, computed
where the read happens: the hook exports `isKnown`. The two ad-hoc copies
are gone and the two unguarded surfaces use it, showing an em dash and
naming the method that did not answer.

Also restores module resolution. 258bd1a48 dropped `baseUrl: "."` from
tsconfig on the grounds that `paths` already covered it — but `paths` was
`{}`, so baseUrl alone was resolving every absolute import in the repo
("configs/app", "lib/api/pchain", "ui/..."). Without it tsc could not
resolve a single one. `"*": ["./*"]` is the same rule in the form TS7
accepts: tsc goes from thousands of TS2307 to 1.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 14:32:37 -07:00
2026-07-25 16:11:22 -07:00
2022-10-11 11:47:11 +03:00
2025-12-10 19:21:07 +01:00
2025-10-17 14:58:12 +02:00
2023-04-11 19:25:22 -03:00
2025-02-01 14:27:11 -06:00
2026-06-28 20:35:55 -07:00
2025-11-18 10:03:49 +01:00
2023-02-24 12:37:08 -05:00

explore

DEPRECATED — see ~/work/lux/explorer/

The standalone Next.js frontend in this repo is no longer deployed. Its build output is embedded directly into the Lux Explorer Go binary (ghcr.io/luxfi/explorer:1.2.1) via go:embed. Run that single binary in production.

This repo is preserved as the source of the embedded SPA assets. Updates to the UI ship via a rebuild of the explorer image, not by deploying this Next.js app separately.

Canonical deploy: ~/work/lux/explorer/ (Go binary, single process, indexer + GraphQL + SPA, port 8090).

Lux Explore frontend (legacy)

Frontend application for Lux Network blockchain explorer

Running and configuring the app

App is distributed as a docker image. Here you can find information about the package and its recent releases.

You can configure your app by passing necessary environment variables when starting the container. See full list of ENVs and their description here.

docker run -p 3000:3000 --env-file <path-to-your-env-file> ghcr.io/blockscout/frontend:latest

Alternatively, you can build your own docker image and run your app from that. Please follow this guide.

For more information on migrating from the previous frontend, please see the frontend migration docs.

Contributing

See our Contribution guide for pull request protocol. We expect contributors to follow our code of conduct when submitting code or comments.

Resources

License

License: GPL v3.0

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

S
Description
Lux Network Blockchain Explorer.
Readme GPL-3.0
598 MiB
Languages
TypeScript 96%
JavaScript 2.6%
Shell 0.6%
CSS 0.4%
Python 0.2%
Other 0.2%