BlockScout v9.3.0 π
π¨ Breaking Changes in REST API (Release 9.3.0)
With the Blockscout Backend Release 9.3.0, breaking changes are being introduced for REST API. These changes expand the strict parameter validation framework that was partially rolled out in previous releases.
π Expansion of Strict Parameter Validation
Strict parameter validation β previously applied to:
/api/v2/addresses/*/api/v2/blocks/*/api/v2/tokens/*
is now being expanded to almost all remaining REST API endpoints.
π Newly Affected Endpoints
The following endpoints will enforce strict validation rules starting in version 9.3.0:
/api/v2/transactions/*/api/v2/token-transfers/*/api/v2/internal-transactions/*/api/v2/config/*/api/v2/main-page/*/api/v2/smart-contracts/*/api/v2/stats/*/api/v2/search/*/api/v2/withdrawals/*
β οΈ What Strict Validation Means
Beginning with 9.3.0 (on those endpoints):
- Unexpected parameters will trigger validation errors.
- Unexpected or invalid parameter values will also generate errors.
β Example: Unexpected Parameter
Request:
api/v2/transactions/0xe45c00c5fb067719edbe93caf5373de87ac7e04ff079c53b00f7d6d93356467c/internal-transactions?limit=5
Response:
{
"errors": [
{
"title": "Invalid value",
"source": {
"pointer": "/limit"
},
"detail": "Unexpected field: limit"
}
]
}
β Example: Unexpected Value Format
Request:
api/v2/transactions/0xe45c00c5fb067719edbe93caf5373de87ac7e04ff079c53b/internal-transactions
Response:
{
"errors": [
{
"title": "Invalid value",
"source": {
"pointer": "/transaction_hash_param"
},
"detail": "Invalid format. Expected ~r/^0x([A-Fa-f0-9]{64})$/"
}
]
}
π Updated Swagger Documentation
- Swagger files for version 9.3.0: https://github.com/blockscout/swaggers/tree/master/blockscout/9.3.0
π‘ New environment variables
New environment variables list
| Variable | Description | Parameters |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| INDEXER_DISABLE_HOT_SMART_CONTRACTS_FETCHER | If true, Indexer.Fetcher.Stats.HotSmartContracts won't be started. Implemented in #13471. | Version: v9.3.0+
Default: false
Applications: Indexer |
| MIGRATION_DELETE_ZERO_VALUE_INTERNAL_TRANSACTIONS_ENABLED | Enable of delete zero-value calls migration. Implemented in #13305. | Version: v9.3.0+
Default: false
Applications: Indexer |
| MIGRATION_DELETE_ZERO_VALUE_INTERNAL_TRANSACTIONS_BATCH_SIZE | Specifies the block batch size selected for the delete zero-value calls migration. Implemented in #13305. | Version: v9.3.0+
Default: 100
Applications: Indexer |
| MIGRATION_DELETE_ZERO_VALUE_INTERNAL_TRANSACTIONS_STORAGE_PERIOD_DAYS | Specifies the period for which recent zero-value calls won't be deleted in delete zero-value calls migration. Implemented in . | Version: v9.3.0+ Default: Applications: Indexer |
| | Specifies the interval between checking of new zero-value calls to be deleted in delete zero-value calls migration. Implemented in . | Version: v9.3.0+ Default: Applications: Indexer |
| | Sets DIA platform from https://www.diadata.org/docs/reference/apis/token-prices/api-endpoints/blockchains. Implemented in . | Version: v9.3.0+ Default: (empty) Applications: Indexer |
| | If set, overrides the DIA API url. Implemented in . | Version: v9.3.0+ Default: Applications: API, Indexer |
| | Sets address hash for native coin in DIA. Implemented in . | Version: v9.3.0+ Default: (empty) Applications: API |
| | Sets address hash for secondary coin in DIA. Implemented in . | Version: v9.3.0+ Default: (empty) Applications: API |
| | Flag to enable base indexer metrics. Implemented in . | Version: v9.3.0+ Default: true Applications: Indexer |
| | Flag to enable indexer metric: the count of token instances not uploaded to CDN. Implemented in . | Version: v9.3.0+ Default: false Applications: Indexer |
| | Flag to enable indexer metric: the count of token instances with failed metadata fetches. Implemented in . | Version: v9.3.0+ Default: true Applications: Indexer |
| | Flag to enable indexer metric: the count of token instances pending to fetch. Implemented in . | Version: v9.3.0+ Default: true Applications: Indexer |
| | Flag to enable indexer metric: the count of current token balances with missing values. Implemented in . | Version: v9.3.0+ Default: true Applications: Indexer |
| | Flag to enable indexer metric: the count of archival token balances with missing values. Implemented in . | Version: v9.3.0+ Default: true Applications: Indexer |
| | Jovian upgrade L2 block timestamp. If set to , the Jovian is assumed to be active from genesis block. Implemented in . | Version: v9.3.0+ Default: (empty) Applications: API, Indexer |
| | Defines the number of decimals for Arc chain native token (e.g. USDC). Implemented in . | Version: v9.3.0+ Default: Applications: Indexer |
| | Arc chain native token contract address. Implemented in . | Version: v9.3.0+ Default: Applications: Indexer |
| | Arc chain system contract address emitting event. Implemented in . | Version: v9.3.0+ Default: Applications: Indexer |
π Features
- Update InternalTransactionsAddressPlaceholder upserts (#13696)
- Internal transactions on demand fetcher (#13604)
- Indexer config API endpoint (#13679)
- Add DIA market source (#12678)
- Add metadata to eth bytecode DB lookup request (#13625)
- Support ZRC-2 tokens for
zilliqachain type (#13443) - Indexer monitor Prometheus metrics (#13539, #13668, #13670)
π Bug Fixes
- Fix tests for on-demand internal transaction fetcher (#13744)
batch_numberinput param is now integer for OP and Scroll API endpoints (#13727)- Set timeout: :infinity for delete zero value migration (#13708)
- Limit batch size for placeholders insertion (#13699)
- Add missed reputation fetch (#13695)
- Fix NFTMediaHandler postgres parameters overflow error (#13694)
- Add smart contract preload to hot contracts query (#13691)
- Restore fetcher name to dev console output (#13681)
π Documentation
- Update API endpoints descriptions in OpenAPI (#13647)
β‘ Performance
- Improve performance of api/v2/main-page/indexing-status endpoint (#13730)
- Implement celo aggregated election rewards (#13418)
βοΈ Miscellaneous Tasks
- GitHub Actions workflows: stop using ELIXIR_VERSION & OTP_VERSION from org/repo variables (#13718)
- Refactoring of the application mode config (#13715)
- Eliminate warnings in the Swagger file (#13714)
- Change URL to Solidity binaries list (#13711)
- Add osaka to the default list of supported EVM versions (#13680)
- Filter out empty addresses from multichain export (#13674)
- Validate NFT_MEDIA_HANDLER_BUCKET_FOLDER env (#13671)
- Enhance RPC API errors logging (#13664)