Releases: enviodev/hyperindex
v2.29.1
v2.29.0
Block Handlers 🆕
Run logic on every block or at an interval!
This is useful for aggregations, time-series logic, and bulk updates using raw SQL. To get started, import the onBlock
function from the generated
module and call it in one of your handler files.
import { onBlock } from "generated";
onBlock(
{
name: "MyBlockHandler",
chain: 1,
interval: 10,
startBlock: 10_000_000,
},
async ({ block, context }) => {
context.log.info(`Processing block ${block.number}`);
}
);
Read a dedicated documentation page to learn more about the feature and powerful use cases it enables:
- Time intervals
- Preset handler
- Multichain mode
- Different intervals for historical and real-time sync
For inspiration, check out the Example Indexer, which uses all the latest Envio features - Block handlers with different intervals, Effect API, and Traces indexing to get all contracts deployed on Mainnet.
Other changes 🧹
- Removed internal
db_write_timestamp
field, which was automatically set for every entity.
Full Changelog: v2.28.0...v2.29.0
v2.29.0-alpha.3
What's Changed
Improve stability of block handlers.
Full Changelog: v2.29.0-alpha.2...v2.29.0-alpha.3
v2.29.0-alpha.2
Support interval
, startBlock
, endBlock
options for onBlock
handler.
Full Changelog: v2.29.0-alpha.1...v2.29.0-alpha.2
v2.29.0-alpha.1
Full Changelog: v2.29.0-alpha.0...v2.29.0-alpha.1
v2.29.0-alpha.0
What's Changed
Experimental onBlock
handler. The most alpha version.
Full Changelog: v2.28.0...v2.29.0-alpha.0
v2.28.0
What's Changed
New official _meta
query
Returns indexing metadata per chain, which helps track the indexer's progress.

2X faster historical sync with RPC data source
Improved block range selection for logs query, halving the number of needed requests for some RPC providers.
Cheaper historical sync with HyperSync data source
Optimized response from HyperSync to make queries simpler, faster, and have smaller ingress.
Much faster indexing for big factories
Added a performance optimization for indexers with a large number of addresses (>500k). It reduced the indexing time of an indexer with 2 million addresses from 4 days to 2.
SubGraph migration Cursor rules cheatsheet
Find a Cursor rule example in our repo to help you effortlessly migrate your existing SubGraph to HyperIndex!
By @keenbeen32 in #725
Other improvements
- Started tracking a real progress block number, which made recovery on restart more efficient
- The events processed counter became more reliable on restarts
- Removed
cache
from.gitignore
for initial templates - Improved start up time
Potential breaking changes ⚠️
The release initiates a significant refactoring of internal tables, focusing on a single public entry point - _meta
.
To achieve this, we hide all internal tables from Hasura, as well as change the internal representation of some of them. These are: chain_metadata
, event_sync_state
, persisted_state
, end_of_block_range_scanned_data
, and dynamic_contract_registry
. Please let us know if this change affected you and we'll figure out a solution 🫡
New Contributors
- @keenbeen32 made their first contribution in #725
Full Changelog: v2.27.6...v2.28.0
v2.28.0-rc.0
Full Changelog: v2.27.6...v2.28.0-rc.0
v2.28.0-alpha.3
Full Changelog: v2.28.0-alpha.2...v2.28.0-alpha.3
v2.28.0-alpha.2
Fixes for meta queries, fix race condition on rollback, perf improvement for indexers with 100k+ addresses.
Full Changelog: v2.28.0-alpha.1...v2.28.0-alpha.2