Skip to content

v2.12.0

Latest

Choose a tag to compare

@tom2drum tom2drum released this 30 Sep 13:40
· 26 commits to main since this release

🚀 New Features

  • Scale ERC-8056 token amounts by the token's UI multiplier by @tom2drum in #3700
  • Add OP Stack transaction type labels by @nonsense in #3659
  • Add PostHog as an optional product analytics provider by @tom2drum in #3755

🐛 Bug Fixes

  • Show the transaction not-found screen on every tab, not only Details by @tom2drum in #3709
  • Fix the home page RPC fallback not starting when only one widget loses its API data by @tom2drum in #3713
  • Fix address highlight getting stuck after a brief first hover by @tom2drum in #3714
  • Fix the white flash on reload for explorers with a default dark theme by @tom2drum in #3717
  • Prefer the configured default color theme over the OS preference on a first visit by @tom2drum in #3741
  • Fix React bugs surfaced by the React Doctor backlog scan by @tom2drum in #3716
  • Allow Google Ad Manager hosts for Sevio ad zones in the CSP by @tom2drum in #3725
  • Stop the server-side pageview ping from logging unhandled rejections when it fails by @tom2drum in #3718
  • Open external marketplace dapps directly instead of embedding them by @tom2drum in #3729
  • Fix withdrawals counter showing the sum in wei instead of the native coin by @tom2drum in #3762
  • Fix the white flash on reload in Firefox for explorers with a dark theme by @tom2drum in #3763
  • Fix code editor crash when contract sources repeat a file path by @tom2drum in #3765
  • Fix search on the bridged tokens tab when cross-chain txs are enabled by @tom2drum in #3769

⚡ Performance Improvements

  • Make the URL the single source of truth for paginated lists and stop redundant requests on navigation by @tom2drum in #3698

📦 Dependencies Updates

🛠️ DX & Tooling

  • Unify text truncation behind a single Truncate primitive by @tom2drum in #3660
  • Reserve the .tsx extension for files that contain JSX by @tom2drum in #3676
  • Rewrite the tools/ scripts in TypeScript so they are type-checked, tested and gated by @tom2drum in #3694
  • Add a cognitive-complexity and CRAP-score CI gate by @tom2drum in #3670
  • Restructure the code-complexity tool into pipeline stages by @tom2drum in #3677
  • Measure test assertion strength with mutation testing by @tom2drum in #3678
  • Enforce the app-config convention with ESLint rules by @tom2drum in #3699
  • Select Playwright component tests with Playwright's --only-changed and rebalance the CI matrix by @tom2drum in #3707
  • Add a React Doctor check that blocks pull requests on new React bugs ESLint misses by @tom2drum in #3715
  • Make flaky Playwright component tests deterministic by @tom2drum in #3742
  • Add a Slack reply watcher to the product-task workflow by @tom2drum in #3662
  • Rework the review skills: explicit inputs, a task-folder output mode, and a restyled PR review by @tom2drum in #3690
  • Pilot a typed-judgment screen as a fourth subagent in the agent code review by @tom2drum in #3726
  • Replace the per-axis word cap in the agent code review with a per-finding cap by @tom2drum in #3727
  • Collect Slack message conventions in an on-demand agent doc by @tom2drum in #3730

🎨 Design Updates

  • Neutral default colors for selected elements, navigation and top bar by @tom2drum in #3736
  • Replace mobile list views with table views across the app by @tom2drum in #3723
  • Update styles for "In/Out/Self" badges by @tom2drum in #3672
  • UI: Display of statistics tiles on mobile by @tom2drum in #3735
  • Allow choosing full or icon view per multichain portfolio provider and drop the promo flag by @tom2drum in #3734
  • Make the app action button a header element on token, NFT and transaction pages by @tom2drum in #3738

✨ Other Changes

  • Scope every interchain request to the deployment's slice of the shared indexer by @tom2drum in #3679
  • Support the xDai bridge and native tokens in cross-chain transactions by @tom2drum in #3744
  • Take cross-chain list totals and the 24h widget from the stats service instead of the interchain indexer by @tom2drum in #3703
  • Migrate Swap to the official LI.FI widget by @maxaleks in #3710
  • Surface batch-transaction recipients in the tx details To & Value fields by @tom2drum in #3664
  • Add token-transfer tooltips to advanced filter from/to addresses by @Sophran-fbj in #3701
  • Main page stats failover improvements by @tom2drum in #3673
  • Track header banner link clicks in Mixpanel by @ulyanas in #3719

🚨 Changes in ENV variables

  • #3679
    • Added NEXT_PUBLIC_CROSS_CHAIN_TXS_BRIDGE_IDS to state which bridges' messages and transfers a deployment is allowed to show (its slice of the shared interchain indexer). Required when the cross-chain transactions feature is enabled; an instance with the feature on and no bridge ids fails startup validation.
    • Added NEXT_PUBLIC_CROSS_CHAIN_TXS_INCLUDE_UNINDEXED_CHAINS to also show rows whose counterparty chain is not indexed by any configured bridge. Optional, defaults to false.
    • NEXT_PUBLIC_INTERCHAIN_INDEXER_API_HOST must be repointed at the shared interchain indexer instance of the environment.
  • #3710
    • The swap entry of NEXT_PUBLIC_MARKETPLACE_ESSENTIAL_DAPPS_CONFIG now uses chains, fee and integrator properties. The legacy url property is still accepted but ignored: Swap now always uses the official LI.FI hosted widget, so custom Swap iframe URLs no longer take effect.
  • #3734
    • Extended items of NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG with an optional view: 'full' | 'icon' property to choose the full or icon-only button view per provider (default full).
    • Removed the promo property from NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG items. Configs still carrying it keep validating, the flag is ignored.
  • #3738
    • Removed NEXT_PUBLIC_TOKEN_ACTION_BUTTON_CONFIG (added in #3692). The token action button is now driven by the metadata service (appActionButton* fields of a protocol tag). An instance still setting the variable fails startup validation.
  • #3744
    • No variables added or changed. Instances that should show the xDai bridge need its bridge id added to NEXT_PUBLIC_CROSS_CHAIN_TXS_BRIDGE_IDS.
  • #3755
    • Added NEXT_PUBLIC_POSTHOG_API_KEY: a PostHog project API key. Setting it enables PostHog as an analytics provider.
    • Added NEXT_PUBLIC_POSTHOG_CONFIG_OVERRIDES: JSON merged over the default PostHog SDK config. It is only allowed when the API key is set.

Full list of the ENV variables: v2.12.0

💑 Compatibility

This release raises the minimum required version of the following API services:

Service Version
Blockscout API v12.0.0
Stats microservice API v2.19.1
Interchain indexer microservice API v1.11.0

🦄 New Contributors


Full Changelog: v2.11.5...v2.12.0