Skip to content

v0.15.0

Compare
Choose a tag to compare
@Jannis Jannis released this 03 Sep 17:36

Fallible contract calls (#332)

Calls to contract functions can fail due to assertions in the contract. Until now there was no way to handle this in subgraphs gracefully. This release introduces new try_someContractFunction call variants that return a result object with reverted and value fields. These can then be used in mappings to handle call failures.

An example can be found in the documentation.

Top-level templates (#319)

Data source templates have been moved to a top-level templates field in the manifest. The data source templates documentation has been updated accordingly.

Top-level templates simplify creating new data sources at runtime: templates can now be referred to from all data sources and can create new data sources from other templates as well.

This also affects subgraph validation and code generation in a few ways. While Graph Node >= 0.15.0 still allows subgraphs with nested templates to run, Graph CLI now rejects such subgraphs. Code generation now puts all generated template classes into a single templates.ts file.

Other Changes

  • Only upload files to IPFS once if they are used in manifests multiple times (#337).
  • Fix subgraph migrations to replace all apiVersion occurrences in manifests (#337).
  • Add support for arrays of Ethereum tuples / Solidity structs (#320).
  • Update dependencies: graphql, ipfs-http-client, gluegun, eslint, jest, eslint-utils, mixin-deep, keytar, lodash.