Commit Graph
60 Commits
Author SHA1 Message Date
zeekayandHanzo Dev e7f02cb067 fix(deploy): explorer RPC endpoints are /v1/bc/C/rpc
luxd is /v1-only (server/http/server.go pins baseURL="/v1"), and the
brand-aliased /ext/bc/{zoo,hanzo,pars}/rpc paths were removed from the
gateways. Each org's testnet explorer now points at its own gateway's
canonical C-Chain route.

Proven live: https://api.zoo-test.network/v1/bc/C/rpc -> 200 eth_chainId
0x30e09 (200201). api.hanzo-test.network (origin 521) and
api.pars-test.network (no DNS) are down independently of this change;
the URL shape is now the one that will work when they return.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 19:06:16 -07:00
zeekayandHanzo Dev e53f9cd22f fix(explore): reconcile chainIds to live/canonical + migrate chain RPC to /v1 (v1.1.7)
chainId reconciliation (registry = live chains = genesis LP-018 map, one way):
- Pars mainnet 7070 -> 494949 (live api.pars.network eth_chainId=0x78d65,
  net_version=494949); Pars testnet 7071 -> 494950, devnet 7072 -> 494951
  (matches genesis configs/lp182_chain_id_map.go 4949xx scheme).
- Lux devnet 96370 -> 96367 (live api.lux-dev.network reports 96367).
- chainRegistry.spec.ts now asserts Pars 494949 (was stale-7070 assert).
- Also fixed: configmap-mainnet Pars NETWORK_ID, configmap-testnet Pars
  NETWORK_ID, branded_build.sh, tools/send_test_txs.py, well-known/explore.json
  (regenerated from the fixed registry).

RPC /ext/bc/<alias>/rpc -> /v1/bc/C/rpc (gateway canonical; each sovereign L1
serves its own C-Chain at /v1/bc/C/rpc). Verified returning blocks before switch:
Lux/Zoo/Hanzo/Pars mainnet + Lux testnet. Kept on /ext (their /v1 not up yet):
Lux devnet, brand testnets, local-node compose/test-tool URLs. P-chain proxy
now dials /v1/bc/P. useChainHeights + luxnet/instance no longer strip
/ext/bc/C/rpc; they use the env RPC URL / origin directly so C-chain height +
luxnet SDK work under /v1.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-14 10:06:17 -07:00
zeekayandHanzo Dev e471fb7641 explore v1.1.4: native all-chains wallet-connect, login/menu fixes, correct chain manifest
- wallet: brandFamilyChains derives sibling networks (Lux mainnet/testnet/devnet)
  from the multi-tenant chain registry so connect/add presents EVERY registered
  network for the brand, not just the env chain; dedupe by id.
- login/menu: useProvider queryFn returns null (react-query v5 forbids undefined)
  + callers switched from '= {}' destructure default to '?? {}' so a null result
  no longer crashes the wallet hooks (the busted-menu root cause).
- manifest: fix Pars chainId 7070 -> 494949 (regression) and drop the forbidden
  'Subnet' term from sovereign L1 network names (-> '<Brand> Network').
- Validators page + /api/pchain proxy present; rebuild makes the live 5-validator
  view visible on explore.lux.network.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-08 11:44:04 -07:00
zeekay 3d1120861a feat(brand): per-(brand x env) image overlay — ghcr.io/{brand-org}/explore-{env}
The branded build now fans out into 8 (4 brands × mainnet+testnet)
production images:

  ghcr.io/luxfi/explore-{mainnet,testnet}:v1.0.0
  ghcr.io/zooai/explore-{mainnet,testnet}:v1.0.0
  ghcr.io/hanzoai/explore-{mainnet,testnet}:v1.0.0
  ghcr.io/parsdao/explore-{mainnet,testnet}:v1.0.0

Each image is a thin ENV overlay of ghcr.io/luxfi/explore (the Next.js
runtime) — brand identity is baked at build time via NEXT_PUBLIC_*
build-args. The brand's GHCR namespace owns the image per the workspace
container-registry rules (no cross-org mixing).

deploy/scripts/branded_build.sh is the source of truth for tuple -> env
mapping; the actual image fan-out is performed via crane mutate -e which
produces an instant ENV-only layer (no Kaniko, no tar of build context —
same hash blob mounts across namespaces).

The corresponding K8s manifests (per-brand Deployment + Service per
namespace, IngressRoute patches routing catch-all to FE) live in the
cluster directly.
2026-06-10 13:24:39 -07:00
zeekay 3813d03918 feat: explorer FE — stateless SSR, chain selector, localnet, registry cleanup 2026-03-01 18:00:00 -08:00
zeekay 2c4fcde2d2 feat: multichain explorer pages, chain switcher, indexer integration
- Network Overview homepage with P-chain stats and chain cards
- Chain detail page with validator info and indexer stats
- Chain switcher dropdown in top bar
- A-chain AI client with indexer API integration
- D-chain DEX data hook with live indexer fallback
- E2E tests for all 5 live explorer instances
- Test transaction sender script
- Remove verbose comments, section dividers, and console.log scaffolding
2026-02-27 10:46:56 -08:00
zeekay 7049344343 Switch from yarn to pnpm, clean up dependency tree
- Replace yarn v1 with pnpm 10.11.0 across all build configs
- Move misplaced deps to devDependencies (cspell, esbuild, @openzeppelin/contracts, @next/bundle-analyzer, @types/papaparse, @types/react-scroll)
- Remove stale @types/[email protected] override — use correct React 19 types (fixes 22 type errors)
- Convert yarn resolutions to pnpm.overrides
- Update Dockerfile, Dockerfile.lux, CI workflows, and all shell scripts
- Add .npmrc with shamefully-hoist for Next.js compatibility
- Add outputFileTracingRoot to next.config.js
2026-02-24 17:35:30 -08:00
tom goriunovandGitHub 5627820db8 Highlights banners on home page (#3175)
* basic implementation

* fix loading state of image

* tests

* try to fix flaky tests
2025-12-18 12:21:53 +01:00
9a977d191b Fixes for release v2.5.0 (#3142)
* fail the app start if multichain config or essential dapps config were not generated properly

* add timeouts for essential dapps and multichain config generators

* fix "add to wallet" button in address tokens table

* [skip ci] update docs

* fix tx tables when there are no fee and value columns

* add support for promoted multichain provider

* fixes

* change action button logic

* fix tests

* fix

* hide "add network" button for multichain

* shorten the amount of txs on multichain homepage

* change name formatting for multichain button

* add bright color variants and lg size for badges

* fix y-axis margin calculation for chart with custom tick formatter

* superchain bug fixes

* bump versions of react and nextjs

* update screenshot

* bump dappscout-iframe

---------

Co-authored-by: Max Alekseenko <[email protected]>
2025-12-04 18:44:01 +01:00
tom goriunovandGitHub d1b90c92bb Refactor envs validator: split schema and migrate to vite (#3140)
* migrate to vite

* split validation schema
2025-11-19 11:01:05 +01:00
Max AlekseenkoandGitHub 487fe0317a Essential dapps (#3026) 2025-10-17 14:58:12 +02:00
Igor StuevandGitHub cedd52a7b0 add retries for assets downloading, fail build (#3030)
* add retries for assets downloading, fail build

* fix wording
2025-09-27 20:43:12 +02:00
tom goriunovandGitHub 6d135bb291 llms.txt introduction (#2967)
* add file generator and template for common content

* add chain specific data

* add chain specific data for stability, shibarium, scroll and zilliqa

* fix ts

* add instructions about contract sources
2025-09-08 11:30:30 +02:00
Igor StuevandGitHub 0f4e29e4d0 zeta chain cctx (#2904)
* zetachain start

* zeta chain cctx table

* pagination

* cctx page init

* meta for new route

* remove backlink

* schema

* continue

* fix

* navigation

* filters to test

* some fixes

* add chain filter

* add error message and revert options

* address chain logo fix

* cctx search

* socket

* fix conflict

* fixes1

* fixes2

* fixes3

* fixes4

* fixes5

* tests

* fixes6

* test fixes

* revert options fix

* stats and revert semi-fix

* fix readme

* cleanup

* check for cctx in lifecycle

* update config

* fixes 8

* fixes 9

* update config

* fixes10
2025-09-05 15:53:00 +02:00
Max AlekseenkoandGitHub c24d92193f Support new API for dapp ratings (#2916); Remove dapp security score (#2918) 2025-08-08 14:49:14 +02:00
6d44e159b5 Address widgets (#2788)
* add address widgets

* Update ENVS.md

* fix long values

* fix responsive size and hover border color

* improve url template formatting, add chainId mapping

* add hover animation

* add widgets tab

* filter widgets by address type

* fix link style

* add mixpanel event

* fix stub

* fix result check

* add tests

* fix tabs loading

* Check the workflow: generate chakra types if the node_modules cache is hit

* fix loading

* fix loading view all link

* fix loading issue

* post-review changes

* rename envs and feature

* rename components and hook

* rename config prop and change url template format

* change validation schema

* add chain_id to request params

* update tests

* rename, improve

* improve grid logic

* improve formatting func

* simplify grid logic

* update hint text

* duplicate widgets in env for tests

* update mocks and snapshots

* fix text

* fix grid one more time

* update envs with test config

* update snapshots

* fix grid max width

* update mock and snapshots

* use separator

* Update .env.eth

* fix

* update snapshots

---------

Co-authored-by: tom <[email protected]>
2025-07-04 10:21:28 +02:00
tom goriunovandGitHub ca4c8d6633 OP Superchain Explorer: MVP (#2786)
* context for storing subchain config and tx view for subchain

* address page and block page for subchain

* address aggregated page: local txs tab

* connect MultichainSelect to context

* home page placeholder

* refactor subchain select state

* envs for demo

* fix ts

* clear value for l2 review

* subchain widgets on home page

* csp policies

* sockets, duck and goose

* fix socket on subchain address page

* link builder for subchain views

* update home widget

* fix time increment

* enable tx interpretator and metadata service

* generate multichain config based on every chain app config

* Fix the multichain config to work in Docker

* multichain socket test

* rename subchain-id to subchain-slug path param

* refactoring

* update chain icons on entities

* home page: latest local txs

* latest cross-chain txs

* minor improvements

* renaming, pt. 1

* rename chain routes

* enable blockchain interaction

* add loading state to icon shield

* fix build

* fix tests

* update types package
2025-07-03 15:07:00 +02:00
tom 803be77728 Merge branch 'main' of github.com:blockscout/frontend into chakra-v3 2025-03-24 19:47:18 +01:00
tom b1b8c508c7 [skip ci] generate og image after validating envs 2025-03-19 19:28:27 +01:00
tom goriunovandGitHub 7e7f49cbe6 Make static sprite registry (#2615)
* make static sprite registry

* [skip ci] fix file stats command

* [skip ci] sort icons by name
2025-03-14 17:04:06 +01:00
tom 4216798b00 fix build, sidebar transition and network logo loading state 2025-03-12 20:15:14 +01:00
tom 98e8c54841 Merge branch 'main' of github.com:blockscout/frontend into chakra-v3 2025-03-11 20:25:18 +01:00
tom 3b727f406b [skip ci] add timeouts for og and sitemap generators 2025-02-18 14:21:27 +01:00
tom c5f8fcdd3f [skip ci] add timeout for asset download script 2025-02-18 12:18:57 +01:00
tom 57c70454ee make build not failing in the ci 2025-01-23 18:13:19 +01:00
tom goriunovandGitHub b32a115b07 OG image: automatically generate image on container start (#2496)
* make script to generate OG image at container start

* add prod service URL

* remove og_image.png

* update path to file

* [skip ci] remove app url from payload
2025-01-14 12:01:18 +01:00
tom goriunovandGitHub ec06875b08 Generate sitemap.xml and robots.txt files (#2502)
* base implementation of sitemap generator

* move generator to separate directory to optimize docker image size

* generate robots.txt file
2025-01-14 11:56:47 +01:00
tom 60886be306 append hash to sprite file name base on its content 2024-12-23 15:37:28 +01:00
MaxandGitHub 7947f1fc74 fix(deploy-script): favicon generator (#2466)
Without this change, the script tries to execute an `index.js` located
in a folder that does not have such a file.
2024-12-13 13:56:53 +01:00
Igor StuevandGitHub 926beb4091 Merge pull request #2319 from blockscout/fe-2287
Favicon generator: replace realfavicon with favicons package
2024-11-01 11:39:06 +01:00
tom goriunovandGitHub 644122b3a5 Add run-time variable to skip ENVs validation (#2334)
Add run-time variable to skip ENV validation
2024-10-29 08:18:48 +01:00
isstuev 71cf615b30 Favicon generator: replace realfavicon with favicons package 2024-10-25 13:57:35 +02:00
isstuev 15bbd28000 Graph integration 2024-10-17 13:39:10 +03:00
omnusandGitHub 73a1cd8659 Next.js compliant command for production builds (#2219)
* feat: Vercel compliant command for prod builds

* feat: simplify to a single command, rename command

Also included the script to download assets.

* fix: exclude vercel injected env vars

Vercel injects a number of environment variables, that in some cases can result in run time errors when the app is reading from envs.js. Exclude these.
2024-09-11 12:20:27 +02:00
tom f476b4e6b5 add support of raw string inputs for json-like config ENVs 2024-08-30 18:43:25 +02:00
tom goriunovandGitHub 811ba0a437 Move generated assets into separate folder inside the public folder (#1930)
* add build-time ENV to explicitly enable Open Telemetry

* generate svg-sprite before next build

* move envs.js to assets folder

* move favicon bundle to assets folder

* move external configs to configs folder

* fix envs validator
2024-05-20 13:17:33 +02:00
tom goriunovandGitHub 35314183d6 zkEVM deposits and withdrawals (#1833)
* deposits page

* withdrawals page

* tests

* rename optimism routes

* [skip ci] fix presets
2024-04-23 15:42:32 +02:00
tom goriunovandGitHub 0057fe01c4 ENVs preset for deploy demo workflow (#1829)
* pass envs preset to docker entrypoing

* gh actions integration

* update presets

* more preset fixes

* [skip ci] fixes
2024-04-17 14:38:53 +02:00
Max Alekseenko 188139b77c add iframe banner 2024-04-04 18:00:48 +02:00
Max Alekseenko a2d13d8b95 add featured app banner 2024-03-29 19:46:43 +01:00
Max Alekseenko 815921be25 add security score component, integrate real data 2024-03-13 22:19:08 +01:00
Max Alekseenko 28f5a61303 use separate list of categories and improve apps sorting 2024-01-26 17:44:19 +01:00
tom goriunovandGitHub 06a8b00ba9 support local file URI for ENVs with external resources (#1325)
[skip ci] support local file URI for ENVs with external resources

Fixes #1324
2023-11-08 10:11:40 -03:00
tom goriunovandGitHub f4a9d70a4c ENVs changes and test script for validator (#1296)
* use SENTRY_CSP_REPORT_URI only in nextjs part of the app

* rename NEXT_PUBLIC_FAVICON_GENERATOR_API_KEY to FAVICON_GENERATOR_API_KEY

* tests presets for envs validator

* simplify logs

* refactor getExternalJsonContent function

* tweak contribution guide

* break validator

* debug workflow

* fix copying assets folder

* fix CI
2023-10-18 12:05:00 -03:00
tom goriunovandGitHub f6c2115018 filters counters and verify button (#1294)
* add counter to filters

* move verification button higher for partially verified contracts

* [skip ci] support query params in external assets ENV urls

* [skip ci] skip code checks if changes in tools folder

* [skip ci] tweak eslint process.env rule
2023-10-18 12:03:09 -03:00
tom goriunovandGitHub 7dc9f249c1 double quotes in NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGE cause an error (#1285)
Fixes #1276
2023-10-16 11:15:39 -03:00
tom b1b2e17e33 fix envs generator for pw tests 2023-10-13 17:49:52 -03:00
tom 714992892e [skip ci] fix loading envs from docker build stage 2023-10-03 10:19:33 -03:00
tom goriunovandGitHub 43f1af2c25 workaround for ENV replacement script (#1212)
* base implementation of client script with envs values

* better ENVs setup for pw tests

* fix tests
2023-09-29 10:45:23 -03:00
Igor StuevandGitHub a463c05cac og improvements (#1175)
* og improvements

* update review configs

* review fix

* review fix 2
2023-09-25 14:34:26 -03:00