v3.2.0
What's Changed
Filter by multiple fields with getWhere 🔭
await context.Account.getWhere({
id: {
_eq: "0x123...",
},
balance: {
_gte: 1_000_000n,
_lte: 10_000_000n,
},
});Additionally, we noticeably improved the performance of getWhere with a single _eq or _in filter by optimizing the number of round trips to the database.
By @DZakh in #1303, #1306, #1310, #1313, #1316, #1315, #1318, #1317, #1320
Multi-storage improvements 🫙
Now it's possible to mark storages as default to automatically assign an entity to the storage. It allows you not to set @storage attribute for every entity in schema.graphql and only use it as a default overwrite.
storage:
postgres:
default: true
clickhouse:
default: trueColumn Name Format 💄
Configure automatic conversion for column names in your database to snake_case. It only affects the underlying database, so GraphQL and handler types will preserve the original names derived from schema.graphql.
storage:
postgres:
column_name_format: snake_caseMore Experimental Solana Features 🤐
We added support for HyperSync-powered instruction handlers. Reach out to us if you're interested in becoming an early tester.
By @JasoonS and @DZakh in #1287, #1301, #1307, #1309, #1314
Critical Bug Fixes 🚨
- Fix critical bugs causing an indexer crash introduced by v3.1
- Handle missing transaction data as retryable RPC errors - previously it would incorrectly disable the source by @DZakh in #1304
- Make config path root-relative in start command by @DZakh in #1296
- Validate duplicate addresses in config at parse time by @DZakh in #1311
Internal Work 🧹
- Chore, refactoring and other fun things by @DZakh #1290,
#1295, #1291, #1293, #1294, #1299, #1302, #1308, #1319
Full Changelog: v3.1.2...v3.2.0