Skip to content

v3.9.0

Choose a tag to compare

@DZakh DZakh released this 28 Aug 08:46
· 71 commits to main since this release
72ed729

What's Changed

Per-chain entities PG optimization

Now, if you set disable_default_cross_chain: true, the per-chain entities will be split into PG partitions to optimize read and write performance when targeting a specific chain.

By @DZakh in #1595

Per-chain entities with ClickHouse config

You can use the automatically added chainId column for the orderBy ClickHouse configuration.

By @DZakh in #1578

Improved Schema.graphql validation errors

They provide an exact location, a concise description, and a suggested solution.

schema.graphql:7:13: Invalid `@index` on `Second`: `missing` is not a column of the entity.
  Available columns: `id`, `value`.

By @DZakh in #1578

Nullability with @derivedFrom

To better match SubGraph behavior, HyperIndex now supports any nullability combination for derived fields. Check out our Envio Subgraph solution if you want to run your Subgraph with HyperIndex under the hood with 0 code changes.

type Parent {
  id: ID!
  strict: [Child!]! @derivedFrom(field: "parent")
  nullableList: [Child!] @derivedFrom(field: "parent")
  nullableItems: [Child]! @derivedFrom(field: "parent")
  nullableBoth: [Child] @derivedFrom(field: "parent")`,
}
type Child {
  id: ID!
  parent: Parent!
}

By @DZakh in #1581

Support one address for multiple contracts

This is especially nice when you have factory contract addresses you don't control.

name: shared-address-routing
contracts:
  - name: Token
    events:
      - event: Transfer(address indexed from, address indexed to, uint256 value)
  - name: Vault
    events:
      - event: Transfer(address indexed from, address indexed to, uint256 value)
      - event: Deposit(address indexed owner, uint256 amount)
chains:
  - id: 1
    contracts:
      - name: Token
        address: "${sharedAddress}"
      - name: Vault
        address:
          - "${sharedAddress}" # An error before, now a legit case
          - "${vaultOnlyAddress}"

by @DZakh in #1566

SVM (experimental)

  • The instruction.args is not optional anymore. The instructions that failed to decode are skipped by @DZakh in #1583
  • The experimental.hypersync_config becomes optional and automatically derived from chain.id by @DZakh in #1588
  • Finalize SVM handler and data types by @DZakh in #1590

Internal Changes

  • Build the envio native addon once per vitest run by @DZakh in #1579
  • Mock source answers: park and claim pattern for test reliability by @DZakh in #1589
  • docs: correct Solana status and HyperSync chain count in the README by @Jordy-Baby in #1597

Full Changelog: v3.8.0...v3.9.0