Major Changes
-
8193136: Added
dynamicFieldIndex
to theStore_SpliceDynamicData
event. This enables indexers to store dynamic data as a blob per dynamic field without a schema lookup. -
adc6822: PostgreSQL sync/indexer now uses
{storeAddress}
for its database schema names and{namespace}__{tableName}
for its database table names (or just{tableName}
for root namespace), to be more consistent with the rest of the MUD codebase.For namespaced tables:
- SELECT * FROM 0xfff__some_ns.some_table + SELECT * FROM 0xfff.some_ns__some_table
For root tables:
- SELECT * FROM 0xfff__.some_table + SELECT * FROM 0xfff.some_table
SQLite sync/indexer now uses snake case for its table names and column names for easier writing of queries and to better match PostgreSQL sync/indexer naming.
- SELECT * FROM 0xfFf__someNS__someTable + SELECT * FROM 0xfff__some_ns__some_table
-
252a185: Migrated to new config format.
Minor Changes
-
3622e39: Added a
followBlockTag
option to configure which block number to follow when runningcreateStoreSync
. It defaults tolatest
(current behavior), which is recommended for individual clients so that you always have the latest chain state.Indexers now default to
safe
to avoid issues with reorgs and load-balanced RPCs being out of sync. This means indexers will be slightly behind the latest block number, but clients can quickly catch up. Indexers can override this setting usingFOLLOW_BLOCK_TAG
environment variable. -
d7b1c58: Upgraded all packages and templates to viem v2.7.12 and abitype v1.0.0.
Some viem APIs have changed and we've updated
getContract
to reflect those changes and keep it aligned with viem. It's one small code change:const worldContract = getContract({ address: worldAddress, abi: IWorldAbi, - publicClient, - walletClient, + client: { public: publicClient, wallet: walletClient }, });
Patch Changes
- d5c0682: Updated all human-readable resource IDs to use
{namespace}__{name}
for consistency with world function signatures. - 3f5d33a: Fixes an issue with Zustand store sync where multiple updates to a record for a key in the same block did not get tracked and applied properly.
- Updated dependencies [c9ee5e4]
- Updated dependencies [8f49c27]
- Updated dependencies [8269307]
- Updated dependencies [d5c0682]
- Updated dependencies [01e46d9]
- Updated dependencies [2c920de]
- Updated dependencies [4423604]
- Updated dependencies [3be4dee]
- Updated dependencies [5debcca]
- Updated dependencies [9aa5e78]
- Updated dependencies [307abab]
- Updated dependencies [c991c71]
- Updated dependencies [b38c096]
- Updated dependencies [e34d117]
- Updated dependencies [190fdd1]
- Updated dependencies [db314a7]
- Updated dependencies [5926765]
- Updated dependencies [1a82c27]
- Updated dependencies [8193136]
- Updated dependencies [86766ce]
- Updated dependencies [93390d8]
- Updated dependencies [144c0d8]
- Updated dependencies [c58da9a]
- Updated dependencies [be18b75]
- Updated dependencies [3042f86]
- Updated dependencies [d7b1c58]
- Updated dependencies [95f64c8]
- Updated dependencies [3e7d83d]
- Updated dependencies [252a185]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]
- @latticexyz/[email protected]