Skip to content

Releases: enviodev/hyperindex

v2.5.0

15 Oct 13:16
3ff4f9e
Compare
Choose a tag to compare

New Feature

Dynamic Contract Pre-registration

You can now add "preRegisterDynamicContracts" flag to your event config. For all the events that have this config, there will be an end to end indexer run just for these events to run all the relevant contractRegister functions and collect all the dynamic contract addresses. The indexer then restarts with all these addresses from the start block configured for the network (rather than from the block that the contract gets registered). For a standard factory contract setup this drastically reduces indexing time since it doesn't result in many small block range queries but rather larger grouped queries.

PoolFactory.CreatePool.contractRegister(
  ({ event, context }) => {
    context.addPool(event.params.pool);
  },
  { preRegisterDynamicContracts: true },
);

What's Changed

Full Changelog: v2.4.4...v2.5.0

v2.4.4

10 Oct 10:53
Compare
Choose a tag to compare

What's Changed

  • Fix missing nested dependencies in fuel types gen causing incorrect ordering of code generation by @DenhamPreen in #257
  • Fix restart bug with dynamic contracts by @JonoPrest in #258

Full Changelog: v2.4.3...v2.4.4

v2.4.3

08 Oct 15:30
Compare
Choose a tag to compare

Fixes

  • Fix copy_table_to_entity_history function being called on non reorg indexer by @JonoPrest in #256

Improvements

  • Indexers with multiple partitions worth of addresses now execute partitioned queries concurrently

Full Changelog: v2.4.2...v2.4.3

v2.4.2

04 Oct 10:31
Compare
Choose a tag to compare

What's Changed

v2.4.1

01 Oct 15:27
a236a89
Compare
Choose a tag to compare

What's Changed

  • Fix broken binary path on envio CLI usage by @DZakh in #243

Full Changelog: v2.4.0...v2.4.1

v2.4.0

01 Oct 13:53
8e0f015
Compare
Choose a tag to compare

What's Changed

New Fuel receipt types support β›½

Previously, you could only index LOG_DATA receipts. The release supports indexing MINT, BURN, TRANSFER, TRANSFER_OUT, and CALL receipt types.

Read more on the Fuel documentation page.

By @DZakh in #227, #228, #229, #239, #241

Customize decimal precision of BigInt and BigDecimal fields πŸ’―

When working with large integers or high-precision decimal numbers in your application, you might need to customize the precision and scale of your BigInt and BigDecimal fields. This ensures that your database stores these numbers accurately according to your specific requirements. If you know your numbers will not be too big, you can also optimize the database by not over-allocating on the precision.

Example:

type Product {
  id: ID!
  price: BigDecimal @numeric(precision: 10, scale: 2)
}

In this example, the price field can store numbers with up to 10 digits in total, with 2 digits after the decimal point (e.g., 99999999.99).

Read more on the Schema documentation page.

By @JasoonS in #223

Fixes & Improvements πŸ”§

  • Drastically improve historical sync performance with Reorg handling enabled by @JonoPrest in #220, #235
  • Update npm package README.md by @DZakh in #232

Internal work 🧹

  • Benchmark Improvements by @JonoPrest in #218, #242
  • Remove unused to_postgres_type function from codegen by @JasoonS in #224
  • Preparations for V2 Hosted Service: Add Prometheus Metric for synced at head and update pnpm install options by @MJYoung114 in #230
  • Remove TS and Eslint dev dependencies from the Envio package by @DZakh in #233
  • Start moving code from generated to the Envio package by @DZakh in #234, #238
  • Preparations for the Fuel Mainnet launch by @DZakh in #237
  • Clean cache guide by @JasoonS in #236

Full Changelog: v2.3.2...v2.4.0

v2.3.2

24 Sep 15:02
dabd985
Compare
Choose a tag to compare

What's Changed

  • Add partial support for Fuel Bytes type by @DZakh in #225
  • Increase HyperSync client timeout to 2 min by @JonoPrest in #213
  • Add Indexer Benchmarking System by @JonoPrest in #215
  • Fuel Mint indexing support Part 1 - Implement HyperFuel query selection for Mint receipts by @DZakh in #214

Full Changelog: v2.3.1...v2.3.2

v2.3.1

17 Sep 15:51
20bae84
Compare
Choose a tag to compare

What's Changed

Fixes πŸ”§

  • Support indexing multiple events with the same sighash and different topics by @JonoPrest in #204
  • Fix contract import for Fuel by @DZakh in #207, #208, #209
  • Fix Vec support for Fuel by @DZakh in #206
  • Deduplicate wildcard queries on multiple registers and partitions by @JonoPrest in #210

Internal Work πŸ—οΈ

Full Changelog: v2.3.0...v2.3.1

v2.3.0

16 Sep 12:30
455be53
Compare
Choose a tag to compare

What's Changed

Wildcard Indexing ⁂

Index the whole chain by event signature without specifying exact contract addresses.

Here's an example of indexing all ERC20 Transfer events. No need to change the config file. Simply add the wildcard: true option to the second argument in your handler:

ERC20.Transfer.handler(
  async ({ event, context }) => {},
  {
    wildcard: true,
  }
)

Final touches implemented by @JonoPrest in #171, #197

Event Filtering πŸ”Ž

Filter events by indexed parameters. Simplify your handler's logic or get new indexing possibilities when joined with the Wildcard Indexing feature:

UniswapV3Factory.PoolCreated.handler(async ({ event, context }) => {},
  {
    wildcard: true,
    eventFilters: [{ token0: DAI_ADDRESS }, { token1: DAI_ADDRESS }],
  },
);

⚑ Both Wildcard Indexing and Event Filters are currently only supported with HyperSync. We are working on adding support for RPC mode in the following versions.

Implemented by @JonoPrest

Fuel Merge β›½

The fuel ecosystem indexer is integrated into the main repository code. This was a huge refactoring which came with a big list of benefits and a big list of opportunities.

If you use [email protected] version, you can switch to [email protected] and get:

  • Now Fuel and Evm reuse the same code. This gives V2 API, much better test coverage, and many improvements/fixes compared to [email protected]
  • Support for raw_events configuration
  • Support for Wildcard Indexing
  • Public repository
  • Active development and maintenance

Talking about opportunities, this unblocks:

  • Adding support for Mint/Burn/Call/TransferIn/TransferOut events
  • Indexer became more modular and library-like, simplifying the integration of new ecosystems in the future

Implemented by @DZakh in #186, #190, #192, #193, #194, #196, #202

Other πŸ—οΈ

  • Add validation for end block on finite chains by @JonoPrest in #191
  • Upgrade Hasura to latest v2 release by @JonoPrest in #169
  • Use the local envio package for testing instead of defaulting to latest by @DZakh in #200
  • Fix panic on null exn passed to error handling by @DZakh in #203

Full Changelog: v2.2.3...v2.3.0

v2.2.3

10 Sep 10:14
Compare
Choose a tag to compare

What's Changed

Fixes πŸ”§

  • A TUI/GUI issue with showing progress incorrectly for contracts with 5k+ addresses by @JonoPrest in #188
  • An early exit with some unprocessed events for contracts with 5k+ addresses and end_block by @JonoPrest in #188
  • Remove validation for indexer name by @DZakh in #184
  • Remove name prompt from the indexer init flow by @DZakh in #184

Full Changelog: v2.2.2...v2.2.3