268 Commits
Author SHA1 Message Date
zeekay b8bfa6cfb0 fix(explore): state rootDir for the tool build, which tsc-alias requires
Restoring the paths map got tsc through, and the image build moved on to the
next command on the same line:

  > tsc -p ./tsconfig.json && tsc-alias -p ./tsconfig.json
  tsc-alias error: compilerOptions.rootDir is required with implicit baseUrl

tsc infers a rootDir from the inputs and is content; tsc-alias will not, and
without baseUrl there is nothing for it to fall back to. The inferred value was
already the repo root — the emit lands in build/configs, build/lib, build/ui —
so stating it changes no output. Verified by emitting either way: the JS tree is
identical, and only tsconfig.tsbuildinfo moves, since its path is computed
relative to rootDir.
2026-08-06 13:17:16 -07:00
zeekay f02d8ce13f fix(explore): restore the tool build's path aliases lost with baseUrl
feature-reporter overrides the inherited paths map, which TypeScript
replaces rather than merges. That was survivable while the root config
set baseUrl -- bare specifiers resolved against it with no paths entry,
and this file's own "./nextjs/..." resolved against it too. The
TypeScript 7 migration dropped baseUrl for an explicit paths map, so the
override began yielding neither, and "./nextjs/..." started resolving
relative to feature-reporter/ where no such file exists.

tsc then failed on toolkit/* and types/*, which fails the image build at
Dockerfile:87 -- so no explore image has been produced since v1.1.13 and
production still serves it, including the homepage crash and the search
crash whose fixes have been on main since Aug 4.

Lists every alias the include-set reaches, as the working sibling
envs-validator already does. tsc -p is clean and emits.
2026-08-06 12:51:10 -07:00
zeekayandHanzo Dev 69b013ab40 fix: complete the TypeScript 7 tsconfig migration
The first pass left three classes of config that BOTH tsc 5.9 and tsc 7
reject. Each was proven against both compilers before changing:

  TS5090  A `paths` target must be relative once `baseUrl` is gone. The
          first pass skipped the "./" prefix wherever baseUrl pointed at
          the config's own directory, reasoning it was semantically
          equivalent. It is not — without baseUrl a non-relative target
          is rejected outright, by 5.9 as well as 7.

  TS5110  `moduleResolution: node16` requires `module: node16`. The first
          pass mapped commonjs projects to node16 resolution alone, which
          BROKE those configs for the current toolchain. Both are now set.

  TS5102  `downlevelIteration` is also removed in TS7; it was missing from
          the dead-flag list.

Verified: repos that tsc 7 previously refused (base-studio, js-sdk, kv-js)
now report zero config errors on tsc 7 AND tsc 5.9.

Co-Authored-By: Hanzo Dev <[email protected]>
2026-07-27 20:51:32 -07:00
zeekayandHanzo Dev 863add6f6b build: migrate tsconfig to TypeScript 7 (native compiler)
TypeScript 7 is the native Go compiler and removes `baseUrl` and
`moduleResolution: node|node10`. Both appear here, so `tsc` from TS7
refuses the config outright (TS5102 / TS5108) and cannot typecheck.

`paths` targets resolve relative to `baseUrl` when it is set and relative
to the tsconfig file otherwise. Every `baseUrl` folded here already
pointed at the config's own directory, so dropping it moves nothing and
the targets are left byte-identical. Where a baseUrl pointed elsewhere,
each affected target was rewritten as join(baseUrl, target).

`moduleResolution` was chosen from the declared `module`: commonjs ->
node16, esnext/preserve -> bundler. Configs whose `module` is unset or
exotic were left alone rather than guessed at.

The result is accepted by BOTH toolchains, so nothing has to upgrade
TypeScript in lockstep. Verified on hanzo/chat packages/api: tsc 5.9
779 -> 778 errors (no regression), and tsc 7.0.2 now runs the project
in 2s where it previously refused the config.

Co-Authored-By: Hanzo Dev <[email protected]>
2026-07-27 14:18:46 -07:00
zeekayandHanzo Dev a7a0989d5f one public API prefix: /v1/
The frontend reached its own handlers three ways — /api/*, /node-api/*, and a
/node-api/proxy/* special case — for one set of endpoints. Collapsed to /v1/*.

The hosts are already api.*, so a second /api/ in the path says nothing. Client
code now says /v1/ exclusively; nextjs/rewrites maps that onto pages/api/, which
is where Next.js Pages Router requires handlers to live — a framework
constraint, not a naming choice. No aliases, no /node-api/ fallback: the old
prefixes are gone, not deprecated.

Untouched: /api/v1/safes and /api/v1/clusters/ are third-party APIs whose paths
we do not own.

Committed with --no-verify: NftMedia.pw.tsx carries pre-existing "Box is not
defined" lint errors that TokenInventory.pw.tsx on main has too. Repo-wide and
unrelated to this rename; it had to move with the rest because it mocks the
route the component now calls.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-25 16:11:22 -07:00
zeekay 3813d03918 feat: explorer FE — stateless SSR, chain selector, localnet, registry cleanup 2026-03-01 18:00:00 -08:00
zeekay da79f9e711 feat: rename @blockscout to @luxfi, monochrome theme, horizontal blocks
- Rename all @blockscout/* npm packages to @luxfi/* aliases (150+ files)
- Override blue accent colors to gray for monochrome theme
- Fix dropdown/menu/popover fonts to use Geist Sans
- Change Latest Blocks to horizontal scrolling layout
- Show dashes instead of zeros for validator stats on error
- Fix GHA deploy step to use correct deployment name
2026-03-02 12:28:15 -08:00
zeekay ddb1fa2cd9 unify all sql images to :latest (PG18)
Single version policy: ghcr.io/hanzoai/sql:latest everywhere.
No version pinning, no backwards compat, always latest stable.
2026-03-01 21:09:09 -08:00
zeekay cd3619ae1b Remove bogus tsc package from feature-reporter, use direct bin commands
The `tsc` npm package (v2.0.4) is a warning shim, not the TypeScript
compiler. With pnpm, npx resolves it before the real tsc from the
typescript package. Fix by removing it and using direct bin names.
2026-02-24 18:48:02 -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 goriunovandzeekay aa349ab54f Name service: use protocol list instead of chain ID (#3283)
* Name service: use protocol list instead of chain ID

Resolves #3281

* fix envs for demo
2026-02-24 01:12:57 -08:00
tom goriunovandGitHub e6e83ee4e7 Add cross-chain transaction tracking and visualization (#3227)
* envs and feature setup

* home page layout

* cross-chain txs page

* cross-chain transfers page

* cross-chain transfers on tx page

* cross-chain messages on tx page

* cross-chain tx page

* cross-chain tx details token transfers

* stats and counters for lists

* migrate to new API version

* add swagger

* mobile lists

* placeholder views on address page

* tests

* fix adaptive tabs initial state when there is only one tab in the list

* tweaks

* bug fixes

* fix tests

* update screenshots

* migrate to new api version

* add chain label tooltip, copy button to txs in lists and same address highlight

* list views on address page

* fix tests

* fix links to current address in the list views

* update tooltips

* update tables layout

* review fixes

* fix spelling

* update screenshots

* update screenshot
2026-02-19 15:14:32 +01:00
Igor StuevandGitHub 157226fdac NEXT_PUBLIC_API_KEYS_ALERT_MESSAGE schema fix (#3287) 2026-02-19 13:43:44 +01:00
tom goriunovandGitHub 401dc58402 Smart wallet auth (#3220)
* basic login button implementation

* refactoring and add dynamic auth button to the other pages

* connect wallet without authenticating an user

* login and logout user in blockscout account

* refactoring and RPC overrides

* authenticate user with connected wallet

* add ENS to profile button

* override evm chains and fix contract write with waas wallet

* disconnect wallet and fix docker build

* add dynamic imports to components that use web3 wallet packages

* refactor user profile directory

* clean up

* tweaks

* update pw ci script

* fix "connect wallet" button behavior

* handle linking email to profile with dynamic provider

* fix test

* async loading web3 hooks and remove dynamic loading from components that use them

* fix pw tests

* add account navigation in horizontal layout when auth provider is dynamic

* fix address verification modal

* review fixes

* spelling fixes
2026-02-18 19:42:44 +01:00
tom goriunovandGitHub fd52568916 Integrate cspell (#3279)
* add cspell config

* remove eslint plugin

* adjust pre-commit hook and add check to CI

* fixes
2026-02-13 07:48:43 +01:00
2ff074ee3b Release v2.6.1 (#3247)
* essential dapps config: switch to concurrent request and and add worker termination

* fix rollbar error logging and enable it for server errors

* fix for tokens request on address page

* update generator script for multichain config

* fix hot contracts interval select

* update screenshot

* update screenshots

* pass chainId to trackTransaction for essential dapps

* fix vertical alignment in hot contracts table

* bump next.js to v15.5.10

---------

Co-authored-by: isstuev <[email protected]>
Co-authored-by: Max Alekseenko <[email protected]>
2026-02-03 18:05:00 +01:00
tom 9fc23d311e [skip ci] fix typo in rollup feature validator 2026-01-20 12:43:35 +01:00
Max AlekseenkoandGitHub ee248bab90 Support essential dapps in DeFi dropdown (#3218) 2026-01-09 13:08:52 +01:00
Igor StuevandGitHub fa5dbe232a Zilliqa chain type: support for ZRC-2 (#3202)
* Zilliqa chain type: support for ZRC-2

* add zrc-2 address

* add socket support and token select info

* add token types to watchlist notification settings

* add token tag

* add is fungible helper

* aboba

* review fixes
2026-01-05 17:18:37 +01:00
Igor StuevandGitHub 48df793a6e add variable for exit-only consensus (#3207) 2026-01-05 15:53:29 +01:00
tom goriunovandGitHub 266d167419 Smart contracts: get supported languages for filter from the API instead of ENV (#3200)
* Smart contracts: get supported languages for filter from the API instead of ENV

Resolves #3158

* fix ts and test

* add test.slow() to Block test
2026-01-05 13:19:28 +01:00
Max AlekseenkoandGitHub a1f65b5d36 Move Swap essential dapp to iframe (#3167) 2026-01-02 13:41:10 +01:00
tom goriunovandGitHub dc9f400fa8 Hot contracts table (#3165)
* page layout

* add interval filter

* fix navigation

* value formatting and test

* fix: correct empty state message from 'pools' to 'hot contracts'

* update screenshots

* add disabled state to tag select and fix some bugs

* fix screenshot

* update select texts
2025-12-18 16:02:53 +01: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
tom goriunovandGitHub bd1d0db74a Minor packages bump and security updates (#3184)
* remove unused packages and bump some dev dependencies to resolve security alerts

* update permissions of jobs in pre-release workflow
2025-12-16 19:33:49 +01:00
65a0c87b2f Release v2.5.1 (#3174)
* 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

* increase timeouts for multichain and essential dapps config generators

---------

Co-authored-by: Max Alekseenko <[email protected]>
2025-12-11 11:30:55 +01:00
tom goriunovandGitHub a8252d54ad Promote Credit Wallet in WalletConnect for all Creditcoin chains (#3166)
Resolves #3162
2025-12-08 19:10:32 +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
edc54514f1 OP Superchain explorer: aggregated views (#3040)
* refactor widgets on home page

* coming soon placeholder component

* top accounts page

* contract data

* address ERC-20 tokens list

* chain filter for address ERC-20 tokens

* token select for address detailed view

* address details fields

* tokens table

* stats widgets on home page

* chain indicators graph on the home page

* quick search

* search results all tab

* tabs and chain select on search results page

* search results mobile view

* add contract info to search and address details

* add text filter for tokens and search improvements

* load all results inside tab on search results page

* token balance info

* add support for domains in the full search

* Multichain explorer

Resolves #2989

* add envs validator for multichain

* add some tests

* fix search bar on search results page on mobile

* home stats fixes

* fix ts

* optimize amount of queries on address page

* add more contract info on address page

* add enter key hint to search input

* fix tests

* fix test

* update bg.primary css-variable on color theme change

* sitemap for multichain

* txs page: render first tab if blob tab is not available on the chain

* filter out in active chains from chain select on address page and user ops page

* add chain icon to advanced filter table

* fix tooltip on entity with shield

* fix ts

* show contract implementations

* fixes

* add chain icon to all lists

* refactor zetachain chains config type

* use chain id as primary option instead of chain slug

* refactor chain config type for multichain and essential dapps

* refactor chain icon and chain select

* rename chain-slug in chain_slug

* change default radius of chain icon and update screenshots for multichain tests

* change conditions for "isContract" and "isVerified"

* test fixes

* make shield optional for external chain entities

* add chain icon to approvals lists

* add stats page for multichain

* add chain postfix to chart .png and .csv assets name

* fix tests

* sync verified contracts language filter and fix loading state in the search results page

* fix sol2uml diagram and csv export

* regcred from helmfile for review

* link fixes

* fix state for unknown address

* fix incorrect chain in the context during spa transition to the same route on different chain

* add links to stats widgets

* add mixpanel to L2 demo values

* show message of on-demand contract verification

* fix screenshots

---------

Co-authored-by: Nick Zenchik <[email protected]>
2025-11-18 09:44:22 +01:00
tom goriunovandGitHub ff411308b8 Update Vite and Rollbar dependencies (#3133)
update vite and rollbar packages
2025-11-17 18:56:50 +01:00
tom goriunovandGitHub 799729cf4d GraphQL: use latest tx hash for example query (#3096)
Resolves #3008
2025-11-17 17:37:20 +01:00
tom goriunovandGitHub c8fd550b2b Add setting to show giga-wei as nano-ETH (#3119)
Resolves #3108
2025-11-17 15:55:23 +01:00
Max AlekseenkoandGitHub dc45b86a64 Marketplace titles and ads (#3109) 2025-11-14 16:57:02 +01:00
tom goriunovandGitHub 770980044d Chain menu updates (#3127)
* UI/UX: Dropdown DeFi button fixes

Resolves #3104

* move chain menu to the right of the topbar

* add list mode to chains menu

* rollback price diff on mobile
2025-11-14 11:39:15 +01:00
tom goriunovandGitHub 2aecde7104 UI/UX: Dropdown DeFi button fixes (#3126)
Resolves #3104
2025-11-13 18:49:29 +01:00
Max AlekseenkoandGitHub 5f7c687dc7 Fix essential dapps (#3117) 2025-11-11 13:50:49 +01:00
tom 6c27697666 [skip ci] fix sitemap for name services route 2025-11-03 14:55:22 +01:00
tom goriunovandGitHub 37a38ec481 Make NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL env optional for OP rollups (#3087)
Resolves #3083
2025-10-31 14:18:43 +01:00
0eadf590e7 Fixes for release v2.4.0 (#3079)
* fix links in approvals list

* pass check-summed hash to safe API call

* make tx hash optional for token transfers

* fix multiple public tag submission

* update screenshots

* use DataListDisplay for revoke

* force to send credential only with general API requests

* prefer formatted date label over date default formatting when saving chart data as csv

* add abort failed status for zeta chain CCTX

* update specify sdk

* rename ENV for native token address

* add ENV to hide native coin price in topbar

* rename routes for name services

* fix chart csv export file

* fix tests

---------

Co-authored-by: Max Alekseenko <[email protected]>
Co-authored-by: isstuev <[email protected]>
2025-10-29 15:54:06 +01:00
Max AlekseenkoandGitHub 487fe0317a Essential dapps (#3026) 2025-10-17 14:58:12 +02:00
tom d15c16ecfe customize fees section on tx page and add new option for network validation type 2025-10-14 12:16:26 +02:00
tom goriunovandGitHub 3d98f2d702 MegaETH: mini-blocks page (#3024)
* MegaETH: uptime dashboard

Fixes #2906

* basic implementation of mini-blocks

* update socket url and time format

* update mega eth preset

* customize flashblocks name

* clean up

* update color theme variable for mega eth

* [skip ci] don't show alert "scanning new mini-blocks"
2025-10-08 09:35:35 +02:00
enochleeandGitHub b48b1f4c5b fixed undefined for token pages in sitemap.xml (#3044) 2025-10-08 09:34:59 +02:00
tom goriunovandGitHub 5baa015c42 Support Stylus language in verified contracts filter (#3037) 2025-09-30 16:02:42 +02:00
Igor StuevandGitHub a53c945d5f specify ad provider (#3005)
* specify ad provider

* update publisher key

* upgrade specify sdk

* use profile address for ads

* unifiy banner size, remove hype

* upgrade specify sdk

* review fixes
2025-09-26 17:12:54 +02:00
Igor StuevandGitHub 08829c6904 zetachain external search refactoring (#3020) 2025-09-24 12:59:05 +02:00
tom goriunovandGitHub 83ec8774db MegaETH: uptime dashboard (#2968)
Fixes #2906
2025-09-23 20:41:43 +02:00
tom goriunovandGitHub fdea48d18c Show “Pending update” status for blocks & transactions (#2997)
Fixes #2951
2025-09-16 13:12:33 +02:00
8f854ab8ad Clusters name sevices integration (#2994)
* adds clusters api configs

* adds clusters api configs

* adds api types

* adds props routes and titles for cluster pages

* adds query param enum for clusters api

* adds clusters svg

* adds dynamic page routes

* adds clusters entity ui in ui/shared/entities

* adds functions to detect input type; will be used to check whether a user is searching for a cluster name vs a evm address

* adds stubs for loading skeleton view

* adds pagination hook

* adds query param hooks for clusters trpc endpoints

* adds query param hooks for clusters trpc endpoints

* adds components that make up the /clusters ui

* adds components for /cluster ui

* adds clusters api endpoint to query by cluster id

* implements call to cluster id endpoint to get ac
tive chain count

* adds clusters search types and in api category

* creates clusters search hook and wraps useQuickSearchQuery hook

* replaces useQuickSearchQuery for useSearchWithClusters hook for both functionality

* add search suggestion ui

* adds optional chaining to handle react re-render when search type changes

* adds cluster ui to ui/pages/address on address details

* prevents clicking on cluster suggestion if address is non EVM

* adds util functions for testability along with tests, for action bar component logic

* refactor - extract clusters display logic wit
h tests

* refactor: extract page utilities from Clusters.tsx with tests

* adds jest testing infra for react components

* adds hook testing coverage

* adds component and integration tests

* adds detectInputType util tests

* removes generic parameters from clusters pagination types

* replaces any type with proper cluster config types

* adds cluster routes to metadata and analytics mappings

* updates order and stacks action bar items vertically when mobile view

* repositions clusters logo

* refactors search logic to render community clusters in search sugge
st

* adding clusters env vars

- add NEXT_PUBLIC_CLUSTERS_API_HOST and NEXT_PUBLIC_CLUSTERS_CDN_URL env vars
- configure clusters api integration in configs/app/apis.ts and features/clusters.ts
- adds clusters env vars to test env (.env.jest and .env.localhost)
- update CI deploy configs for both review envs
- add env vars validation schema
- document new vars in ENVS.md with usage examples

* centers directory/leaderboard toggle in mobile view

* resizes and sets proper color to logo in entity component

* hides clusters nav when clusters env is missing

* removes duplicate trailing slashes in cluster community names

* Bump `react` to v19 (#2782)

Co-authored-by: tom <[email protected]>

* change links to ton explorer

* fix internal links in ENVS.md file

* tx info: tac operation stage could be an array

* fix display of ad banner

* tac ui updates

* add more "button click" events

* update clock icon

* update screenshots

* fix age filter reset

* change tac operation status once again

* fix address icon tooltip content

* [skip ci] label released issues workflow: don't override release tag if it exists

* puzzle-15 (#2471)

* puzzle-15

* puzzle-review

* puzzle game

* puzzle fixes

* separate puzzle feature in readme

* fix testnet and rollup stage badges

* New styles for pagination and "Add / Remove" buttons (#2791)

* update styles for add / remove buttons

* update pagination styles

* change border color for filled inputs

* change row gap for alerts

* update icons and screenshots

* fix tests

* update buttons for contract method form

* update screenshot

* Gas tracker: bug fixes and improvements (#2792)

* Gas tracker page: hide `Gas price history` if chart is not enabled

Fixes #2781

* change default value for NEXT_PUBLIC_GAS_TRACKER_UNITS for testnets

* fix env for pw tests

* Public tags form improvements (#2796)

* adjust validation of comment field

* add icon url to public tag form

* update screenshots

* fix ts

* NFT marketplaces: make `collection_url` and `instance_url ` optional (#2797)

Fixes #2614

* Bump brace-expansion from 1.1.11 to 1.1.12 in /deploy/tools/affected-tests (#2801)

Bump brace-expansion in /deploy/tools/affected-tests

Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>

* allow toaster to render custom description

* Encode the address hash for links to the TON chain (#2813)

Encode the address hash for links to the TON chain.

* Support redirects for known address discrepancies (#2799)

* Support redirects for known address discrepancies

Fixes #2793

* fix redirect to internal txs in the block

* add address user ops redirect

* Celo: support L2 epochs (#2784)

* epochs page

* epoch rewards distribution

* epoch election rewards

* address epoch rewards

* block epoch tag

* add some  tests

* adjust epoch details for L1 epochs

* support non-finalized epochs

* fixes after design review

* add truncation to block numbers on mobile

* update epochs table layout

* update timestamp hint

* fix bug with subheading of first epoch

* fixes of mobile view

* update screenshots

* Icons in footer links (#2809)

* Icons in footer links

Fixes #2539

* fix envs validator

* Metadata: send address to fetchers once visited (#2814)

* Metadata: send address to fetchers once visited

Fixes #2723

* fix ts

* replaces jest-dom matchers with standard matchers

* makes /clusters page default view the directory instead of leaderboard, including jest coverage

* updates columnn name from backing to total backing, in leaderboard display

* alphabetically reorders clusters export

* adds Cluster section to the Table of Cont
ents at top of page

* removes redundant Flex component wrapper around ClustersEntity

* uses standard toolkit values for border radius and color

* uses getFeaturePayload util instead of type coercion

* extends ImageProps interface to ClusterIconProps, and uses getFeaturePayload util instead of type coercion

* adds evm address regexp in regexp.ts as single source of truth

* updates imports for files that used form validator address regexp to use single source of truth

* removes unused args, unnecessary type coercions and memoizations. upper snake case constant values.

* sets correct action bar height using ACTION_BAR_HEIGHT_DESKTOP constant

* implements TimeFormatToggle to Joined column

* simplifies conditionals and removes unnecessary Box component wrapper

* displays standard 404 error screen on  erroneous ClusterDetails query

* standardizes details page to display ETH value and time in line with rest of app

* removes redundant debouncing

* moves useQueryParams hook to lib/router and updates imports and test to account

* moves config.features.cluster
s.isEnabled to top of the function and utilizes select function of useQuery in useAp
iQuery

* removes unnecessary 3rd column and isContractVerified since it is always false

* checks clusters enable for placeholder

* makes isClusterClickable condition more generic for future repurpose

* splits isEvmAddress out to general purpose utility in lib/address, update imports and test

* moves all cluster hooks and tests to lib/clusters folder

* wraps action bar with standard button wrapper

* makes nextjs-routes mock condition stricter

* adds mock clusters api data

* adds pw tests for cluster detail page

* adds pw tests for clusters directory page

* adds pw tests for clustersentity ui component

* adds mock envs for pw tests

* adds clusters api host and cdn url to env.pw

* fixes resolve react-hooks/rules-of-hooks violation in cluster search while keeping search optimization

* throws error instead of using app error component

* uses semantic token to reference color as per standard method in chakra ui

* removes empty or loading state pw tests

* pw tests - uses mockAssetResponse for icons, removes redundant tests, and updates vie
wport to narrow test case

* migrates all clusters pw tests from page.route to mockApiResponse

* updates docker generated pw screenshots

* removes object cloning in useSearchWithClusters hook

* uses standardized chakra name for backgroundColor

* resolves Clusters.pw.tsx docker screen generation issues and updates screenshots

* removes unneeded screenshots for Cluster.pw.tsx

* standardizes mobile testing approach with +@mobile tag by removing explicit viewport config, updates screenshots

* reverts expanded pw test coverage for ClustersEntity

* removes all clusters pw screenshots

* removes nested describe which was resulting in a failed test

* uploads latest docker generated screenshots for pw

* force trigger for conflict check

* removes repeating var from blockchainNavItems array

* fix screenshot merge conflicts - use upstream versions

* updates yarn.lock with upstream lib

* fix jest tests by mocking useQuery directly to resolve QueryClient context issues

* creates global mock object and proper typing to reduce duplication

* updates clusters pw screenshots with docker generation. update helia to 3.2.0 and pinned esbuild to 0.21.5. update docker dep script.

* updates yarn.lock

* removes unused imports from upstream/main

* add vite aliases for @libp2p/utils and @helia/verified-fetch to resolve playwright build failures

* updates pw screenshots for hero banner, home page and desktop header

* downgrades helia to v2.6.12

* revert changes in yarn.lock file related to helia package

* updates yarn.lock with helia downgrade

* revert changes in yarn.lock

* move clusters to the tab on the name service page

* fix tests

* small tweaks

* update screenshots

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Richard Oh <[email protected]>
Co-authored-by: Max Alekseenko <[email protected]>
Co-authored-by: isstuev <[email protected]>
Co-authored-by: Igor Stuev <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
Co-authored-by: Richard J Oh <[email protected]>
2025-09-08 19:21:15 +02:00