zeekay 2e1012b761 fix(home): map the realtime block onto the API shape before it reaches the list
The home page rendered the error boundary — "Oops! Something went wrong" —
within seconds of loading, on every explorer in the estate, with no interaction
at all:

  TypeError: Cannot read properties of undefined (reading 'length')
      at HashStringShorten (ui/shared/HashStringShorten.tsx:17)

The list on the home page is filled from the REST API and then kept current by
the realtime stream, and the two do not agree on what a block looks like.
/main-page/blocks answers with the API shape — `height`, and `miner` as an
address object. The indexer broadcasts a raw EVM block:

  data: {"event":"blocks","chain":"cchain","data":{
    "number":1090152,"miner":"0x0100...","txCount":4, ... }}

`new_block` put that straight into the same query cache, so LatestBlocksItem
handed `AddressEntity` a bare string. `address.hash` on a string is undefined,
the entity passed undefined down as its text, and HashStringShorten read
`.length` off it. Instrumented in a dev build: the four blocks that arrive over
the stream log `miner` as a string with no `height`, against six from REST that
carry both — and exactly four entities then render with no text.

TRANSLATIONS already exists as the one place a backend broadcast becomes app
data, and it already has a transform hook, so the shape is settled there rather
than at each reader. Everything downstream keeps knowing exactly one block
shape, which is what it already assumed.

The spec asserted the raw passthrough, so it encoded the bug; it now asserts
the mapped shape and covers `miner` specifically.
2026-08-06 12:20:11 -07:00
2026-08-03 21:01:56 -07:00
2026-08-03 21:01:56 -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
2026-08-03 21:01:56 -07: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%