Skip to content

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 18:16
· 134 commits to main since this release
358004a

Summary of the changes

ERC & Tokens

  • Added support for token contracts with indexing improvements.
  • Introduced NFT trait indexing and aggregation of trait counts, enabling richer metadata queries.
  • Added ERC-1155 unique tokens tracking and total supply support.
  • Enhanced static metadata support with etags, hashes, and last-modified headers for NFTs.

Indexing & Processing

  • Ability to register and index external contracts.
  • New starting block per contract option for more flexible indexing.
  • Improved processor and executor metrics collection.

Storage & SQL

  • Added token indices for faster lookups.
  • Introduced per-contract updated_at tracking.
  • SQLite now supports memory limits for better resource control.

gRPC:

  • Added subscription and fetch support for token transfers.
  • Support for retrieving contracts and filtering with JSON/array operators.
  • Increased max message size (default 16MB).
  • Added timestamps in messages.

GraphQL

  • Published messages via GraphQL.
  • Refined balance queries and token return formats.

Server & CLI

  • Remote reindexing of token metadata is now supported.
  • CLI improvements with new SQL connection options.

Compatibility & Upgrades

  • Upgraded to Starknet 0.17.
  • Updated dependencies to latest Dojo alpha builds and Cairo 2.12.
  • RPC upgraded to Starknet RPC v0.9.0-rc.2.

What's Changed

  • feat(rpc): upgrade Starknet RPC spec to v0.9.0-rc.2 by @kariy in #224
  • refactor(processors): check contract registered before update by @Larkooo in #233
  • feat(types): add support for FixedSizeArray by @kariy in #232
  • release(prepare): v1.7.0-alpha.0 by @glihm in #235
  • feat(artifacts): added cache control header by @Larkooo in #236
  • fix(cli): Parse paths with ~ or env vars by @bengineer42 in #231
  • chore(engine): cache clone cleanup by @Larkooo in #238
  • feat(cli): sql connection options by @Larkooo in #237
  • refactor(fetcher): use indexmap instead of linkedhashmap by @Larkooo in #240
  • refactor(fetcher): rename refs pending to pre confirmed by @Larkooo in #239
  • test(fetcher): retry logic for chunked batched requests by @Larkooo in #242
  • fix(fetcher): more conservative head update by @Larkooo in #243
  • comp(processors): assume legacy default for backwards compatibility by @Larkooo in #244
  • feat(fetcher): assert block hash for get events to by @Larkooo in #245
  • release(prepare): v1.7.0-alpha.1 by @glihm in #246
  • fix(processors): legacy store models & events by @Larkooo in #248
  • Fix spec version error message path by @steebchen in #247
  • fix(schema): primitives for json shared by @Larkooo in #249
  • release(prepare): v1.7.0-alpha.2 by @glihm in #250
  • fix(schema): where input by @Larkooo in #251
  • feat(processors): other contract type by @Larkooo in #252
  • refactor(messaging): use millis for timestamp check by @Larkooo in #253
  • feat(grpc): include timestamps by @Larkooo in #254
  • feat(gql): publish message on graphql by @Larkooo in #255
  • feat(grpc): JSON array operators for filtering by @Larkooo in #256
  • refactor(gql): return all token balances including 0 by @Larkooo in #260
  • fix(fetcher): preconfirmed multi contracts events regression by @Larkooo in #261
  • refactor(grpc): array comparison using json format by @Larkooo in #257
  • release(prepare): v1.7.0-alpha.3 by @glihm in #262
  • fix: release with 1.86 by @Larkooo in #263
  • chore(cairo): workspace versions by @Larkooo in #264
  • feat(erc): total supply in tokens table by @Larkooo in #258
  • feat(erc): retry erc provider calls by @Larkooo in #265
  • release(prepare): v1.7.0-alpha.4 by @glihm in #266
  • fix(erc): rare dashmap deadlock in update diffs by @Larkooo in #268
  • refactor(processors): skip token permament errors from retries by @Larkooo in #267
  • feat(grpc): filtering on arrays subscriptions by @Larkooo in #269
  • release(prepare): v1.7.0-alpha.5 by @glihm in #270
  • feat(server): reindex token metadata remotely by @Larkooo in #271
  • refactor(artifacts): move into a proxy handler by @Larkooo in #272
  • refactor(graphql): only erc20 return 0 balances by @Larkooo in #273
  • feat(static): etag, hash & last modified for nfts by @Larkooo in #275
  • feat(storage): retrieve contracts by @Larkooo in #274
  • feat(storage): updated at migration for contracts by @Larkooo in #278
  • feat(grpc): retrieve contracts by @Larkooo in #277
  • release(prepare): v1.7.0-alpha.6 by @glihm in #279
  • feat(storage): expose token transfers with proto by @Larkooo in #281
  • feat(grpc): subscription & fetch for token transfers by @Larkooo in #282
  • feat(metrics): processors & executor metrics by @Larkooo in #283
  • refactor: pending to preconf by @Larkooo in #285
  • feat(grpc): max message size option & 16mb def by @Larkooo in #286
  • refactor(indexer): logged metrics by @Larkooo in #288
  • fix(processors): store set record legacy keys by @Larkooo in #291
  • feat(indexer): starting block per contract option by @Larkooo in #289
  • refactor(erc): count of unique tokens erc1155 total supply by @Larkooo in #290
  • Revert "refactor(erc): count of unique tokens erc1155 total supply" by @Larkooo in #292
  • feat: bump dojo alpha 3 deps & starknet 0.17 by @Larkooo in #294
  • feat: token contracts by @Larkooo in #295
  • chore: rework test db building and adjust Katana runner by @glihm in #298
  • release(prepare): v1.7.0-alpha.7 by @glihm in #299
  • feat(sql): token indexds by @Larkooo in #300
  • feat(processors): register external contract to index by @Larkooo in #297
  • fix(indexer): tests after cursors refactor by @Larkooo in #302
  • feat(erc): unique tokens 1155 by @Larkooo in #293
  • feat(erc): index nft trait variants by @Larkooo in #296
  • fix(fetcher): handle & skip non finalized pre confirmed tx from cursor by @Larkooo in #284
  • feat(runner): sqlite memory limits by @Larkooo in #304
  • feat(erc): aggregate nft trait counts by @Larkooo in #303
  • fix: use try_compute_selector_from_tag to avoid panic of dojo-types by @glihm in #305
  • release(prepare): v1.7.0 by @glihm in #306

New Contributors

Full Changelog: v1.6.1...v1.7.0