Commit Graph
49 Commits
Author SHA1 Message Date
tom goriunovandGitHub 7e89e10651 MegaETH: uptime dashboard (#2968)
Fixes #2906
2025-09-23 20:41:43 +02:00
tom goriunovGitHubRichard OhMax AlekseenkoisstuevIgor Stuevdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Richard J Oh
60a7d97164 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: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 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: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Richard J Oh <[email protected]>
2025-09-08 19:21:15 +02:00
Igor StuevandGitHub 3390479f1d 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
tom goriunovandGitHub 5f84600e9e Clean up deprecated ENVs (#2982)
* Clean up deprecated ENVs

* fix test
2025-08-28 17:41:28 +02:00
tom 53eca5cc27 exclude CELO native token balance from net worth 2025-08-25 09:44:03 +02:00
tom goriunovandGitHub 3c9ebfc1d2 Add support for customizing the UI color theme (#2923)
* UI customizations: new features

Fixes #2905

* colors for graphs

* introduce env variable

* colors for topbar, stats, selected state and tabs

* fix build

* fix validator

* refactor link.primary.hover color token

* refactor selected colors

* update styles for switch and fix some color tokens

* change color for selectable controls

* icon color tokens refactoring

* UI customizations: new features

Fixes #2905

* test for common components

* tweaks

* migrate from color-mode-hex cookie to color-theme cookie

* clean up

* update screenshots

* more screenshot updates

* update default color of chart line

* update envs for mega eth
2025-08-19 11:58:05 +02:00
tom goriunovandGitHub 03d3c446f8 Validators list: incorrect position of the sticky table header (#2867)
Fixes #2866
2025-07-18 20:00:32 +02:00
tom goriunovandGitHub 36930767c9 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 goriunovandGitHub 1445197193 Encode the address hash for links to the TON chain (#2813)
Encode the address hash for links to the TON chain.
2025-06-27 12:21:30 +02:00
tom goriunovandGitHub 06e085d588 Add support for Ton Application Chains (#2722)
* operation lifecycle accordion

* operation entity

* adapt layout to mobile device

* basic operations view

* pass response data to operation details

* update types package

* tac operation status and links to tx on ton

* feature config, docs and operation badge

* add info to tx page

* add operations to search

* search input on operations page

* tests

* update tooltips and temporary fix of ts

* add InterFallback typeface with → glyph

* design and api updates

* support new API version

* add time format toggle

* add shield to entity icon

* minor fixes

* update screenshots

* clean up

* fix screenshot
2025-06-05 11:47:47 +02:00
tom 2c8ef107d0 [skip ci] sync all dev presets 2025-05-31 12:03:20 +02:00
tom 8443f19f33 Merge branch 'main' of github.com:blockscout/frontend into chakra-v3 2025-03-26 15:43:24 +01:00
d0611cecb9 Improvements for NFT media (#2643)
* Show NFT image for token transfers

Fixes #2547

* rewrite logic of loading NFT media

* make amends to NftEntity

* show original media size only in the modal

* immutable envs

* tests

* fix fallback condition

* fixes

* fix one more test

* Removing blockscout-ci-cd from helm repo

---------

Co-authored-by: Nick Zenchik <[email protected]>
2025-03-25 13:53:27 +01:00
Igor StuevandGitHub 1e32c8ddec Neon: Solana transactions (#2483)
* Neon: Solana transactions

* add neon-devnet to reviews

* add env validation for external txs feature

* txs -> txns

* review fix
2025-02-13 17:15:57 +01:00
tom goriunovandGitHub 586d537080 Show Celestia Blobs on Arbitrum chains (#2562)
* DA info

* ENV variable

* celestia batch page

* tests

* fix ts

* [skip ci] fixes
2025-02-11 09:42:33 +01:00
tom goriunovandGitHub 4daa8b4027 Support EIP-7702 addresses (#2523)
* tx info customizations

* authorizations tab

* implement change for address page

* amends
2025-01-31 14:26:11 +01:00
tom goriunovandGitHub d632a4ac64 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 dca3598161 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 d3a93cf29c Add ENS protocol icon to search results 2025-01-02 10:08:26 +01:00
tom 333f659933 append hash to sprite file name base on its content 2024-12-19 10:16:41 +01:00
tom d8e94d17ac [skip ci] fix favicon generator dev script 2024-12-13 13:59:11 +01:00
tom goriunovandGitHub 115a519870 Support verification of Stylus contracts (#2450)
* add Arbitrum Sepolia dev preset

* base form layout

* add validation for repo url and commit hash

* improve global error text

* show stylus contract info

* add test for contract verification form

* hide "open in IDE" for stylus contracts

* [skip ci] adjust validation rules for GitHub URL

* change contract info items order

* fix error text styles
2024-12-11 13:17:23 +01:00
Igor StuevandGitHub 993b9996ae Scroll views (#2418)
* Scroll views

* review fix

* fix tests
2024-12-03 11:05:28 +01:00
tom goriunovandGitHub c9055def83 Zilliqa: Consensus data on Block view and Raw Input default format for Scilla contract txn (#2375)
* ENV preset for zilliqa

* add zilliqa fields to block view

* [skip ci] fix typo

* fix accordion styles

* [skip ci] make signers required again

* change default format of Raw Input for Scilla contract to UTF-8

* add default type option to log item data
2024-11-25 09:48:43 +01:00
tom b26307bce5 update nextjs version 2024-11-12 13:41:23 +01:00
isstuev 9b6578b37e add filecoin envs 2024-11-04 16:23:29 +01:00
tom goriunovandGitHub 919fc6c435 Combine Read/Write for Contract page (#2343)
* combine tabs and add method type filter

* add badge with contract method type

* add name filter

* add filters to mud system tab

* support array of tabs ids and route old tabs to the new one

* fix tests

* support adding the custom ABI from the contract page

* update margins and add test

* fix bugs and update screenshots

* some design updates

* update preset for garnet

* [skip ci] fix garnet preset

* improve links to contract methods
2024-11-04 14:12:58 +01:00
tom goriunovandGitHub f4de46ee93 Fix highlighting for main contract code (#2333)
Fixes #2331
2024-11-04 09:31:46 +01:00
isstuev a8bae6a281 review fixes 2024-10-29 12:06:36 +01:00
isstuev 7f1b6fac65 Favicon generator: replace realfavicon with favicons package 2024-10-25 13:57:35 +02:00
isstuev 9e91f327c8 Zora: implement custom tag 2024-09-27 15:03:05 +02:00
isstuev c39e22dee7 add blackfort validators 2024-09-23 12:15:42 +02:00
tom goriunovandGitHub 81e244e8ae OP rollup: Batch view and DA fields (#2210)
* tx batches view adjustments

* blocks and txs tabs of batch page

* batch details

* add batch info to block details view

* display batch blob data in EIP-4844 and calldata container

* display batch blob data in celestia container

* tests

* add optimism_celestia preset

* review fixes

* update screenshots
2024-09-06 12:19:01 +02:00
tom goriunovandGitHub 7a3982654a Syncronize dev ENVs presets (#2093)
* base functionality

* update presets

* update docs
2024-07-12 18:27:20 +02:00
tom 28e104f55b disable next.js turbo mode 2024-06-21 13:15:14 +02:00
tom goriunovandGitHub 518c40e889 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 d70e82b1ed [skip ci] fix dev script 2024-05-16 20:19:44 +02:00
tom goriunovandGitHub a03da72b30 bump Next.js version to v14.2.3 (#1885) 2024-05-03 18:48:06 +02:00
tom goriunovandGitHub 8a5738730f Playwright tests refactoring, pt.1 (#1744)
* abort all requests for external resources and single mock for text ad

* render and mockApiResponse fixtures

* move fixtures into separate files

* rewrite Blocks test

* refactor mockApiResponse signature

* test with auth

* rewrite test with other API domains

* fix test

* separate script for installing deps in pw docker
2024-04-01 14:48:30 +02:00
tom goriunovandGitHub 0c5b3e9b5f Run only affected test in PRs (#1565)
* test change

* script for finding affected test suites

* workflow integration

* workflow debug

* special directories cases

* test

* detect changes in npm modules

* add vscode task and fix ci

* fix lock file

* try to fix jobs deps

* add always() function to the job

* i am stupid

* clean up

* fix for case when file is empty
2024-02-12 17:31:35 +04:00
tom ca854e3c8b add sprite to pw tests and migrate entities components 2023-12-20 11:30:24 +04:00
tom 30e969e551 build sprite script and common component 2023-12-19 19:54:16 +04:00
tom dea13da351 [skip ci] Refactor local development setup and scripts 2023-12-07 17:33:22 +04:00
tom 54eb7b8dad [skip ci] add tag to local docker image 2023-10-30 10:59:34 -03:00
tom c7f15b4b8b fix envs generator for pw tests 2023-10-13 17:49:52 -03:00
tom goriunovandGitHub 0bec5abfff 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
tom goriunovandGitHub b256cbb3e5 validate ENV values at run-time (#1184)
* migrate from zod to yul schema

* describe full schema

* adjust docker integration

* make script for downloading app assets

* change links to downloaded assets in the config code

* docker integration

* validate external json configs

* better schemas and ts integration

* update docs and dev script

* gh workflow

* try to fail gh workflow

* install global deps and adjust script for gh workflow

* refinements

* make workflow to pass

* 🙈

* fix tests
2023-09-19 16:19:27 -03:00
tom 91d64167a7 dev script 2023-09-06 11:17:26 -03:00
tom goriunovandGitHub ccb3d1cdbd image build process improvements (#1045)
* auto-generate .env.production file

* env placeholders congruity check

* refactor yarn dev and docker tasks

* [skip ci] pass git tag and commit sha to dev app

* [skip ci] clean up
2023-08-02 13:32:53 -04:00