As part of the Backend 8.0.0 release, there are some important breaking changes and updates to be aware of. Please take a few minutes to go over the details below so you can plan accordingly.
🔄 Docker Image Changes
We've updated our Docker image registry. Please follow the instructions in this guide to make sure your setup continues to run smoothly:
👉 Docker & Config Migration Guide
🚨 API Breaking Changes
The following API v2 endpoints have been removed:
api/v2/smart-contracts/:address_hash/methods-read
api/v2/smart-contracts/:address_hash/methods-read-proxy
api/v2/smart-contracts/:address_hash/methods-write
api/v2/smart-contracts/:address_hash/methods-write-proxy
api/v2/smart-contracts/:address_hash/query-read-method
Additional changes:
- Removed:
is_vyper_contract
(fromsmart-contracts/:address_hash
)has_decompiled_code
(fromaddresses/:address_hash
)token
(from/tokens/:token_address_hash/holders
and/instances/:token_id/holders
)
- Added:
status
(tosmart-contracts/:address_hash
)
- Behavior updates:
verified_twin_address_hash
now returnsnull
for verified contracts or minimal proxies (eip1167
,clone_with_immutable_arguments
,erc7760
) in/api/v2/smart-contracts/:address_hash
proxy_type
andimplementations
no longer pull data from bytecode twins in/api/v2/addresses/:address_hash
andapi/v2/smart-contracts/:address_hash
endpoints
⚙️ ENV Variable Renames
Some environment variables have been renamed for clarity:
CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL
→CACHE_ADDRESS_COUNT_PERIOD
HEALTHY_BLOCKS_PERIOD
→HEALTH_MONITOR_BLOCKS_PERIOD
⛓️ Runtime Config for Chain Types
We've moved from compile-time to runtime config for certain chain types.
More info here:
👉 Runtime Chain Type Config
🪙 Exchange Rates Configuration Update
The environment variable structure for exchange rate fetching has been revamped to enhance clarity, consistency, and maintainability.
Important: The previous configuration format will be unsupported starting with Backend v9.
For migration details and setup instructions, check out the guide:
👉 Exchange Rates Configuration Guide
🔮 What's Coming Next?
Looking ahead to the next major release after 8.0.0, we're continuing efforts to unify naming conventions across API v2:
- Property names for
...block_number
and...transaction_hash
are being standardized (including rollup-related endpoints) - Address hash fields will follow a consistent naming style
- Count/sum fields will adopt a standard format: plural entity name +
_count
or_sum
(e.g.,transactions_count
,withdrawals_sum
)
For now, both old and new names are available in 8.0.0, but expect full migration soon.
Check out our latest naming guidelines here:
👉 API v2 Naming Convention
💡 New environment variables
New environment variables list
Variable | Description | Parameters |
---|---|---|
HEALTH_MONITOR_CHECK_INTERVAL
| Interval between health stats collection. Time format. Implemented in #11888 | Version: v8.0.0+ |
HEALTH_MONITOR_BLOCKS_PERIOD
| New blocks indexed max delay in /health API endpoint. Time format. Implemented in #11888 | Version: v8.0.0+ |
HEALTH_MONITOR_BATCHES_PERIOD
| New batches indexed max delay in /health API endpoint. Time format. Implemented in #11888 | Version: v8.0.0+ |
INDEXER_TOKEN_INSTANCE_CIDR_BLACKLIST
| List of IP addresses in CIDR format to block when fetching token instance metadata. Example: "0.0.0.0/32,192.168.0.0/16" . Implemented in #12102.
| Version: v8.0.0+ |
INDEXER_TOKEN_INSTANCE_HOST_FILTERING_ENABLED
| If false , the URL from which metadata is fetched will not be resolved to an IP address, and the IP address will not be checked against the blacklist. Implemented in #12102.
| Version: v8.0.0+ |
INDEXER_TOKEN_INSTANCE_ALLOWED_URI_PROTOCOLS
| List of allowed URI protocols (schemes) for requests when fetching token instance metadata. Implemented in #12102. | Version: v8.0.0+ |
MIGRATION_SMART_CONTRACT_LANGUAGE_DISABLED
| If set to true , the migration to the language field in the smart_contracts table will not start. If set to false , the migration proceeds as normal. Implemented in #11813.
| Version: v8.0.0+ |
MIGRATION_SMART_CONTRACT_LANGUAGE_BATCH_SIZE
| Defines the number of records to be processed in each batch when migrating the language field in the smart_contracts table. Implemented in #11813.
| Version: v8.0.0+ |
MIGRATION_SMART_CONTRACT_LANGUAGE_CONCURRENCY
| Specifies how many concurrent processes can handle the language field migration. Implemented in #11813.
| Version: v8.0.0+ |
MIGRATION_BACKFILL_METADATA_URL_DISABLED
| If set to true , the backfiller of metadata_url field in the token_instances table will not start. If set to false , the migration proceeds as normal. Implemented in #12102.
| Version: v8.0.0+ |
MIGRATION_BACKFILL_METADATA_URL_BATCH_SIZE
| Defines the number of records to be processed in each batch when backfilling the metadata_url field in the token_instances table. Implemented in #12102.
| Version: v8.0.0+ |
MIGRATION_BACKFILL_METADATA_URL_CONCURRENCY
| Specifies how many concurrent processes can handle the metadata_url field backfilling. Implemented in #12102.
| Version: v8.0.0+ |
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_CONCURRENCY
| Specifies how many concurrent processes can handle the recovery WETH token transfers migration. Implemented in #12065. | Version: v8.0.0+ |
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BATCH_SIZE
| Defines the number of records to be processed in each batch when recovery WETH token transfers. Implemented in #12065. | Version: v8.0.0+ |
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_TIMEOUT
| Defines the timeout between processing each batch (batch_size * concurrency ) in the recovery WETH token transfers migration. Follows the time format. Implemented in #12065.
| Version: v8.0.0+ |
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_BLOCKS_BATCH_SIZE
| Specifies the block range size selected for the recovery of WETH token transfer migration. Implemented in #12065. | Version: v8.0.0+ |
MIGRATION_RECOVERY_WETH_TOKEN_TRANSFERS_HIGH_VERBOSITY
| If set to true , enables high verbosity logging (logs each transaction hash, where missed transfers were restored) during the recovery of WETH token transfer migration. Implemented in #12065.
| Version: v8.0.0+ |
CACHE_ADDRESS_COUNT_PERIOD
| Interval for restarting the task that calculates the total number of addresses. | Version: v8.0.0+ |
RE_CAPTCHA_TOKEN_INSTANCE_REFETCH_METADATA_SCOPED_BYPASS_TOKEN
| API key that allows to skip reCAPTCHA check for requests to /api/v2/tokens/{token_hash}/instances/{token_id}/refetch-metadata endpoint. Implemented in #12147
| Version: v8.0.0+ |
INDEXER_ARBITRUM_BATCHES_TRACKING_FAILURE_THRESHOLD
| The time threshold for transaction batch monitoring tasks. If a task has not run successfully within this threshold, it is marked as failed and enters a cooldown period before retrying. Implemented in #12192. | Version: v8.0.0+ |
RATE_LIMITER_REDIS_URL
| Redis DB URL for rate limiter. Implemented in #12218 | Version: v8.0.0+ |
RATE_LIMITER_ON_DEMAND_TIME_INTERVAL
| Time interval of rate limit for on-demand fetchers. Implemented in #12218 | Version: v8.0.0+ |
RATE_LIMITER_ON_DEMAND_LIMIT_BY_IP
| Rate limit for an IP address for on-demand fetcher call. Implemented in #12218 | Version: v8.0.0+ |
RATE_LIMITER_ON_DEMAND_EXPONENTIAL_TIMEOUT_COEFF
| Coefficient to calculate exponential timeout for on-demand rate limit. Implemented in #12218 | Version: v8.0.0+ |
RATE_LIMITER_ON_DEMAND_MAX_BAN_INTERVAL
| Max time an IP address can be banned from on-demand fetcher calls. Implemented in #12218 | Version: v8.0.0+ |
RATE_LIMITER_ON_DEMAND_LIMITATION_PERIOD
| Time after which the number of bans for the IP address will be reset. Implemented in #12218 | Version: v8.0.0+ |
DISABLE_MARKET
| Disables all fetchers and any market data displaying. Setting this to true will disable all market-related functionality. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_NATIVE_COIN_SOURCE
| Source for realtime native coin price fetching. Possible values are: coin_gecko , coin_market_cap , crypto_rank , or mobula . Useful when multiple coin IDs are configured and you want to explicitly select the source. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_SECONDARY_COIN_SOURCE
| Source for realtime secondary coin fetching. Possible values are: coin_gecko , coin_market_cap , crypto_rank , or mobula . Useful when multiple secondary coin IDs are configured. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_TOKENS_SOURCE
| Sets the source for tokens price fetching. Available values are coin_gecko , crypto_rank , mobula . Implemented in #11844.
| Version: v8.0.0+ |
MARKET_NATIVE_COIN_HISTORY_SOURCE
| Sets the source for price history fetching. Available values are crypto_compare , coin_gecko , mobula , coin_market_cap and crypto_rank . Implemented in #11844.
| Version: v8.0.0+ |
MARKET_SECONDARY_COIN_HISTORY_SOURCE
| Sets the source for secondary coin price history fetching. Available values are crypto_compare , coin_gecko , mobula , coin_market_cap and crypto_rank . Implemented in #11844.
| Version: v8.0.0+ |
MARKET_MARKET_CAP_HISTORY_SOURCE
| Sets the source for market cap history fetching. Available values are coin_gecko and coin_market_cap . Implemented in #11844.
| Version: v8.0.0+ |
MARKET_TVL_HISTORY_SOURCE
| Sets the source for TVL history fetching. Available value is defillama . Implemented in #11844.
| Version: v8.0.0+ |
MARKET_COINGECKO_PLATFORM_ID
| CoinGecko platform id for which token prices are fetched, see full list in /asset_platforms endpoint. Examples: "ethereum", "optimistic-ethereum". Implemented in #11844.
| Version: v8.0.0+ |
MARKET_COINGECKO_BASE_URL
| If set, overrides the Coingecko base URL. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINGECKO_BASE_PRO_URL
| If set, overrides the Coingecko Pro base URL. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINGECKO_API_KEY
| CoinGecko API key. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINGECKO_COIN_ID
| Sets CoinGecko coin ID. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINGECKO_SECONDARY_COIN_ID
| Sets CoinGecko coin ID for secondary coin market chart. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINMARKETCAP_BASE_URL
| If set, overrides the CoinMarketCap base URL (Free and Pro). Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINMARKETCAP_API_KEY
| CoinMarketCap API key. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINMARKETCAP_COIN_ID
| CoinMarketCap coin id. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COINMARKETCAP_SECONDARY_COIN_ID
| CoinMarketCap coin id for secondary coin. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTOCOMPARE_BASE_URL
| If set, overrides the CryptoCompare base URL. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTOCOMPARE_COIN_SYMBOL
| CryptoCompare coin symbol for native coin (e.g., "OP" for Optimism). CryptoCompare uses symbols instead of IDs. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL
| CryptoCompare coin symbol for secondary coin market chart. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTORANK_PLATFORM_ID
| Sets Cryptorank platform ID. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTORANK_BASE_URL
| If set, overrides the Cryptorank API url. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTORANK_API_KEY
| Cryptorank API key. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTORANK_COIN_ID
| Sets Cryptorank coin ID. Implemented in #11844. | Version: v8.0.0+ |
MARKET_CRYPTORANK_SECONDARY_COIN_ID
| Sets Cryptorank coin ID for secondary coin. Implemented in #11844. | Version: v8.0.0+ |
MARKET_DEFILLAMA_COIN_ID
| DefiLlama coin id. Use the name field from the /v2/chains endpoint response (e.g., "OP Mainnet" for Optimism). Implemented in #11844.
| Version: v8.0.0+ |
MARKET_MOBULA_PLATFORM_ID
| Mobula platform ID. Implemented in #11844. | Version: v8.0.0+ |
MARKET_MOBULA_BASE_URL
| If set, overrides the Mobula API base URL. Implemented in #11844. | Version: v8.0.0+ |
MARKET_MOBULA_API_KEY
| Mobula API key. Implemented in #11844. | Version: v8.0.0+ |
MARKET_MOBULA_COIN_ID
| Set Mobula coin ID. Implemented in #11844. | Version: v8.0.0+ |
MARKET_MOBULA_SECONDARY_COIN_ID
| Set Mobula coin ID for secondary coin. Implemented in #11844. | Version: v8.0.0+ |
MARKET_COIN_FETCHER_ENABLED
| If false disables fetching of realtime native coin price. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_COIN_CACHE_PERIOD
| Cache period for coin exchange rates. Implemented in #11844. | Version: v8.0.0+ |
MARKET_TOKENS_FETCHER_ENABLED
| If false disables fetching of token prices. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_TOKENS_INTERVAL
| Interval between batch requests of token prices. Can be decreased in order to fetch prices faster if you have pro rate limit. Time format. Implemented in #11844. | Version: v8.0.0+ |
MARKET_TOKENS_REFETCH_INTERVAL
| Interval between refetching token prices, responsible for the relevance of prices. Time format. Implemented in #11844. | Version: v8.0.0+ |
MARKET_TOKENS_MAX_BATCH_SIZE
| Batch size of a single token price request. Implemented in #11844. | Version: v8.0.0+ |
MARKET_HISTORY_FETCHER_ENABLED
| If false disables fetching of marked data history. Implemented in #11844.
| Version: v8.0.0+ |
MARKET_HISTORY_FIRST_FETCH_DAY_COUNT
| Initial number of days to fetch for market history. Implemented in #11844. | Version: v8.0.0+ |
⛔ Deprecated environment variables
Deprecated environment variables list
Variable | Required | Description | Default | Version | Need recompile | Deprecated in Version |
---|---|---|---|---|---|---|
CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL
| Interval to restart the task which calculates addresses with balances. | 30m | v4.1.3+ | v8.0.0 | ||
HEALTHY_BLOCKS_PERIOD
| New blocks indexed max delay in /health API endpoint. Time format. Implemented in #2294 | 5m | v2.0.2+ | v8.0.0 |
🚀 Features
- Rate limiter for on-demand fetchers (#12218)
- Add average batch time (L2) to prometheus metrics (#12217)
- Contract creation tx block number binary search (#10530)
- Enhance health endpoint logic: track L2-rollup batches health (#11888)
- Universal API Proxy (#12119)
- Add sorting by tx count and balance to
/api/v2/addresses
(#12168) - Support OP interop messages (#11903)
- Store and validate metadata_url (#12102)
- Captcha scoped bypass token for token instance metadata refetch (#12147)
- Add filter by
type
andcall_type
to/api/v2/blocks/{:block_hash}/internal-transactions
(#11968) - ERC-7760 proxy type support (#12057)
- Extend scam tokens feature on other endpoints (#11975)
- JSON RPC metrics (#12070)
- Add search by transaction hash capability at api/v2/internal-transactions endpoint (#12025)
- Add ENS and metadata preload to /api/v2/proxy/metadata/addresses (#11962)
- Zilliqa stakers API (#11615)
- Refine setting of certified flag on smart-contracts (#11855)
- Add PendingTransactionOperation (#11157)
- Allow from_period and to_period to be timestamps in CSV export functionality (#11862)
- Add support of ResolvedDelegateProxy proxy pattern (#11720)
🐛 Bug Fixes
- Limit max import concurrency (#12261)
- CSV export: download items for the given day if from / to period are equal (#12260)
- Upgrade missing balanceOf token condition (#12254)
- Add missing load of health_latest_batch_average_time_from_db (#12240)
- Handle unconfigured coin fetcher ETS access (#12228)
- Negate condition for language check in solidityscan controller (#12222)
- Look up sources for partially verified smart contracts (#12221)
- BufferedTask-based approach for fetching Arbitrum-specific settlement info (#12192)
- Contract creation transaction associations and bytecode twin detection (#12086)
- Improve background migrations + new
Indexer.Migrator.RecoveryWETHTokenTransfers
(#12065) - Update docker cache references to use ghcr.io (#12178)
- Add blob and authorization list info to ETH RPC API (#12150)
- Fix Stability web test (#12171)
- Fix Rootstock failed tests (#12169)
- Unify Block Range Collector behavior for undefined and single range (#12153)
- Signed_authorizations table migrate nonce to numeric(20,0) (#12157)
- Refactor smart-contract API v2 endpoint output (#12076)
- Managing gas usage sum cache and address count cache (#12149)
- Web3 wallet login on Rootstock (#12121)
- Refactor a query to get missing confirmation for Arbitrum blocks (#11914)
- Fix error in old UI (#12112)
- OnDemand fetchers memory consumption for api mode (#12082)
- Implement DA record deduplication for Arbitrum batch processing (#12095)
- Empty contract code addresses (#12023)
- Unify response for single and batch 1155 transfer in RPC API (#12083)
- Is_verified for verified eip7702 proxies (#12033)
- Recovered functionality of Arbitrum batch fetcher (#12059)
- Fix flaking test (#12013)
- Confirmations of Arbitrum blocks near genesis (#11790)
- Fix finding of first block to index (#11875)
- Async fetch internal transactions from reindex migration (#11959)
- Fix Indexer.Fetcher.ContractCode unhandled error (#11873)
🚜 Refactor
- Consistency with the core application in properties namings in rollups-related API endpoints (#12055)
- Refactor market related code (#11844)
⚡ Performance
- Optimize watchlist query (#12264)
- Add index for slow
/api/v2/addresses?sort=transactions_count&order=asc
(#12230) /api/v2/smart-contracts
endpoint (#12060)- Optimize query for user token transfers list filtered by token (#12039)
- Improve watchlist rendering performance (#11999)
⚙️ Miscellaneous Tasks
- Add typed_ecto_schema to release (#12255)
- Suppress logging for expected 404 errors in account abstraction (#12242)
- Upgrade on demand balances fetchers (#12104)
- Migrate images to ghcr.io (#12128)
- Don't send transaction interpretation request for failed tx (#12164)
- Move
redstone
chain type to runtime (#12124) - Move
DISABLE_INDEXER
option to runtime (#12139) - Drop transactions index duplicates (#12144)
- CDN improvement: batch DB upsert (#11918)
- Partially move chain types to runtime (#12114)
- Chain counters refactoring and setup persistency for global counters in the DB (#11849)
- Remove legacy decompiled contracts API (#11998)
- Eliminate intercept for V2 socket channels (#12003)
- Treat
SHRINK_INTERNAL_TRANSACTIONS_ENABLED
as runtime env (#12110) - Docker compose reduce env output (#12111)
- Replaced the link to the blockscout badge (#12106)
- Remove default JSON RPC endpoint (#12071)
- Remove token object from API v2 api/v2/tokens/:hash/holders endpoint (#12022)
- Remove Read/Write smart-contract API v2 endpoints (#12026)
- Use DB replica, if it's enabled, for proxy-related queries (#12020)
- Ganache -> Anvil JSON RPC Variant (#12066)
- Remove
is_vyper_contract
from the/api/v2/smart-contracts/{address_hash}
endpoint response (#11823) - Eliminate warnings in
epoch_logs.ex
(#12027) - Migrate to
language
enum field insmart_contracts
table (#11813) - Fetch epoch logs and rewards until
CELO_L2_MIGRATION_BLOCK
(#11949) - GraphQL introspection plug (#11843)
- Remove duplicate endpoints for 3d party proxies (#11940)
- Limit number of implementations proxy before insertion into the DB (#11882)
What's Changed
- fix: Fix Indexer.Fetcher.ContractCode unhandled error by @vbaranov in #11873
- chore: Limit number of implementations proxy before insertion into the DB by @vbaranov in #11882
- fix: Async fetch internal transactions from reindex migration by @Qwerty5Uiop in #11959
- fix: Fix finding of first block to index by @vbaranov in #11875
- chore(deps): bump core-js from 3.40.0 to 3.41.0 in /apps/block_scout_web/assets by @dependabot in #11989
- chore(deps): bump chart.js from 4.4.7 to 4.4.8 in /apps/block_scout_web/assets by @dependabot in #11988
- chore(deps): bump @amplitude/analytics-browser from 2.11.11 to 2.11.13 in /apps/block_scout_web/assets by @dependabot in #11991
- chore(deps-dev): bump @babel/core from 7.26.7 to 7.26.9 in /apps/block_scout_web/assets by @dependabot in #11990
- chore(deps-dev): bump webpack from 5.97.1 to 5.98.0 in /apps/block_scout_web/assets by @dependabot in #11986
- chore(deps-dev): bump @babel/preset-env from 7.26.7 to 7.26.9 in /apps/block_scout_web/assets by @dependabot in #11983
- chore(deps-dev): bump sass from 1.83.4 to 1.85.1 in /apps/block_scout_web/assets by @dependabot in #11987
- chore(deps): bump bcrypt_elixir from 3.2.0 to 3.2.1 by @dependabot in #11835
- chore(deps): bump hackney from 1.20.1 to 1.23.0 by @dependabot in #11996
- chore(deps): bump httpoison from 2.2.1 to 2.2.2 by @dependabot in #11944
- chore(deps-dev): bump exvcr from 0.15.2 to 0.16.0 by @dependabot in #11942
- feat: Add support of ResolvedDelegateProxy proxy pattern by @vbaranov in #11720
- feat: Allow from_period and to_period to be timestamps in CSV export functionality by @vbaranov in #11862
- chore(deps-dev): Bump wallaby version by @vbaranov in #12007
- chore(deps-dev): bump dialyxir from 1.4.3 to 1.4.4 by @dependabot in #10848
- chore: Remove duplicate endpoints for 3d party proxies by @vbaranov in #11940
- chore(deps-dev): bump eslint from 8.57.1 to 9.21.0 in /apps/block_scout_web/assets by @vbaranov in #12009
- chore(deps): bump tesla from 1.13.0 to 1.14.1 by @dependabot in #11939
- chore(deps-dev): bump eslint-plugin-promise from 6.6.0 to 7.2.1 in /apps/block_scout_web/assets by @dependabot in #11770
- fix: confirmations of Arbitrum blocks near genesis by @akolotov in #11790
- chore(deps): bump plug_cowboy from 2.7.2 to 2.7.3 by @dependabot in #12011
- chore: GraphQL introspection plug by @fedor-ivn in #11843
- chore: fetch epoch logs and rewards until
CELO_L2_MIGRATION_BLOCK
by @fedor-ivn in #11949 - Fix flaking blocks runner tests by @Qwerty5Uiop in #12013
- chore: migrate to
language
enum field insmart_contracts
table by @fedor-ivn in #11813 - chore: eliminate warnings in
epoch_logs.ex
by @fedor-ivn in #12027 - chore: remove
is_vyper_contract
from the/api/v2/smart-contracts/{address_hash}
endpoint response by @fedor-ivn in #11823 - feat: Add PendingTransactionOperation by @Qwerty5Uiop in #11157
- fix: recovered functionality of Arbitrum batch fetcher by @akolotov in #12059
- feat: Refine setting of certified flag on smart-contracts by @vbaranov in #11855
- fix: is_verified for verified eip7702 proxies by @k1rill-fedoseev in #12033
- feat: zilliqa stakers API by @fedor-ivn in #11615
- chore: Ganache -> Anvil JSON RPC Variant by @vbaranov in #12066
- chore: Use DB replica, if it's enabled, for proxy-related queries by @vbaranov in #12020
- chore: Remove Read/Write smart-contract API v2 endpoints by @vbaranov in #12026
- chore(deps): bump absinthe from 1.7.8 to 1.7.9 by @dependabot in #12090
- chore(deps-dev): bump ex_doc from 0.37.2 to 0.37.3 by @dependabot in #12087
- chore(deps): bump ex_abi from 0.8.2 to 0.8.3 by @dependabot in #12091
- chore(deps): bump bamboo from 2.3.1 to 2.4.0 by @dependabot in #12088
- chore(deps): bump ex_cldr from 2.40.2 to 2.40.4 by @dependabot in #12089
- chore(deps): bump image from 0.56.0 to 0.59.0 by @dependabot in #12093
- fix: Unify response for single and batch 1155 transfers in RPC API by @nikitosing in #12083
- fix: empty contract code addresses by @fedor-ivn in #12023
- feat: Add ENS and metadata preload to /api/v2/proxy/metadata/addresses by @nikitosing in #11962
- feat: Add search by transaction hash capability at api/v2/internal-transactions endpoint by @vbaranov in #12025
- chore: Remove token object from API v2 api/v2/tokens/:hash/holders endpoint by @vbaranov in #12022
- chore: Remove default JSON RPC URL by @vbaranov in #12071
- fix: implement DA record deduplication for Arbitrum batch processing by @akolotov in #12095
- chore: better-than-nothing description of Blockscout components by @akolotov in #12105
- chore: replaced the link to the blockscout badge by @vbaranov in #12106
- fix: OnDemand fetchers memory consumption for api mode by @Qwerty5Uiop in #12082
- chore: Docker compose reduce env output by @vbaranov in #12111
- fix: Fix error in old UI by @vbaranov in #12112
- chore(deps): bump @babel/helpers from 7.26.9 to 7.26.10 in /apps/block_scout_web/assets by @dependabot in #12113
- chore: treat
SHRINK_INTERNAL_TRANSACTIONS_ENABLED
as runtime env by @fedor-ivn in #12110 - perf: Improve watchlist rendering performance by @vbaranov in #11999
- fix: refactor a query to get missing confirmation for Arbitrum blocks by @akolotov in #11914
- chore: Eliminate intercept for V2 socket channels by @Qwerty5Uiop in #12003
- chore: Remove legacy decompiled contracts API by @vbaranov in #11998
- fix: web3 wallet login on Rootstock by @sl1depengwyn in #12121
- perf: optimize query for user token transfers list filtered by token by @k1rill-fedoseev in #12039
- chore: Chain counters refactoring and setup persistency for global counters in the DB by @vbaranov in #11849
- chore: partially move chain types to runtime by @fedor-ivn in #12114
- feat: JSON RPC metrics by @vbaranov in #12070
- feat: Extend scam tokens feature on other endpoints by @nikitosing in #11975
- chore: CDN improvement: batch DB upsert by @nikitosing in #11918
- fix: Managing gas usage sum cache and address count cache by @vbaranov in #12149
- fix: Refactor smart-contract API v2 endpoint output by @vbaranov in #12076
- chore: Drop transactions index duplicates by @vbaranov in #12144
- chore: move
DISABLE_INDEXER
option to runtime by @fedor-ivn in #12139 - perf:
/api/v2/smart-contracts
endpoint by @fedor-ivn in #12060 - fix: signed_authorizations table migrate nonce to numeric(20,0) by @vbaranov in #12157
- feat: ERC-7760 proxy type support by @vbaranov in #12057
- chore: move
redstone
chain type to runtime by @fedor-ivn in #12124 - chore: Don't send transaction interpretation request for failed tx by @nikitosing in #12164
- fix: unify Block Range Collector behavior for undefined and single range by @akolotov in #12153
- fix: Fix Rootstock failed tests by @vbaranov in #12169
- fix: Fix Stability web test by @vbaranov in #12171
- chore(deps): bump cachex from 4.0.3 to 4.0.4 by @dependabot in #12175
- chore(deps): bump floki from 0.37.0 to 0.37.1 by @dependabot in #12173
- chore(deps): bump ex_cldr_units from 3.17.2 to 3.19.0 by @dependabot in #12172
- fix: Add blob and authorization list info to ETH RPC API by @vbaranov in #12150
- chore: migrate images to ghcr.io by @fedor-ivn in #12128
- feat: Add filter by
type
andcall_type
to/api/v2/blocks/{:block_hash}/internal-transactions
by @nikitosing in #11968 - refactor: Consistency with the core application in properties namings in rollups-related API endpoints by @vbaranov in #12055
- fix: update docker cache references to use ghcr.io by @fedor-ivn in #12178
- feat: captcha scoped bypass token for token instance metadata refetch by @fedor-ivn in #12147
- feat: Store and validate metadata_url by @nikitosing in #12102
- feat: Support OP interop messages by @varasev in #11903
- fix: Improve background migrations + new
Indexer.Migrator.RecoveryWETHTokenTransfers
by @nikitosing in #12065 - chore(deps): bump solc from 0.8.28 to 0.8.29 in /apps/explorer by @dependabot in #12181
- chore(deps-dev): bump eslint from 9.21.0 to 9.23.0 in /apps/block_scout_web/assets by @dependabot in #12191
- chore(deps-dev): bump @babel/core from 7.26.9 to 7.26.10 in /apps/block_scout_web/assets by @dependabot in #12183
- chore(deps-dev): bump babel-loader from 9.2.1 to 10.0.0 in /apps/block_scout_web/assets by @dependabot in #12182
- chore(deps): bump @amplitude/analytics-browser from 2.11.13 to 2.12.2 in /apps/block_scout_web/assets by @dependabot in #12184
- chore(deps): bump sweetalert2 from 11.15.10 to 11.17.2 in /apps/block_scout_web/assets by @dependabot in #12188
- chore(deps): bump mixpanel-browser from 2.59.0 to 2.63.0 in /apps/block_scout_web/assets by @dependabot in #12189
- chore(deps-dev): bump sass from 1.85.1 to 1.86.1 in /apps/block_scout_web/assets by @dependabot in #12190
- chore(deps-dev): bump autoprefixer from 10.4.20 to 10.4.21 in /apps/block_scout_web/assets by @dependabot in #12185
- chore(deps-dev): bump css-minimizer-webpack-plugin from 7.0.0 to 7.0.2 in /apps/block_scout_web/assets by @dependabot in #12186
- chore(deps-dev): bump copy-webpack-plugin from 12.0.2 to 13.0.0 in /apps/block_scout_web/assets by @dependabot in #12187
- feat: Add sorting by tx count and balance to
/api/v2/addresses
by @nikitosing in #12168 - fix: contract creation transaction associations and bytecode twin detection by @fedor-ivn in #12086
- feat: Universal API Proxy by @vbaranov in #12119
- feat: Enhance health endpoint logic: track L2-rollup batches health by @vbaranov in #11888
- feat: contract creation tx block number binary search by @vbaranov in #12099
- chore: Upgrade on demand balances fetchers by @Qwerty5Uiop in #12104
- fix: BufferedTask-based approach for fetching Arbitrum-specific settlement info by @akolotov in #12192
- chore: update
CONTRIBUTING.md
with new policy about compile time envs by @fedor-ivn in #12208 - feat: Add average batch time (L2) to prometheus metrics by @nikitosing in #12217
- fix: look up sources for partially verified smart contracts by @fedor-ivn in #12221
- refactor: Refactor market related code by @sl1depengwyn in #11844
- feat: Rate limiter for on-demand fetchers by @Qwerty5Uiop in #12218
- fix: negate condition for language check in solidityscan controller by @fedor-ivn in #12222
- fix: handle unconfigured coin fetcher ETS access by @sl1depengwyn in #12228
- perf: Add index for slow
/api/v2/addresses?sort=transactions_count&order=asc
by @nikitosing in #12230 - fix: Add missing load of health_latest_batch_average_time_from_db by @nikitosing in #12240
- chore: suppress logging for expected 404 errors in account abstraction by @fedor-ivn in #12242
- fix: Upgrade missing balanceOf token condition by @Qwerty5Uiop in #12254
- chore: Add typed_ecto_schema to release by @Qwerty5Uiop in #12255
- fix: CSV export: download items for the given day if from / to period are equal by @vbaranov in #12260
- fix: Limit max import concurrency by @Qwerty5Uiop in #12261
- perf: optimize watchlist query by @sl1depengwyn in #12264
Full Changelog: v7.0.2...v8.0.0