Skip to content

v1.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Feb 18:33
· 40 commits to main since this release
596f96d

Important changes

The world contract doesn't contain any breaking changes, only additional API for libraries.

Dojo core

  • dojo::library is now available to manage libraries declared onchain and used through the world’s DNS.
  • Models data fields can now be updated. Enums can receive new variants (you can’t change existing variants) and primitive types can be widened. As an example, a u8 can become a u32. Please refer to the book for more details: https://book.dojoengine.org/framework/models/upgrades
  • Optimization of the DNS usage by using pre-computed hashes to save gas if the DNS is used extensively.

Sozo

  • External contracts are now supported to be declared and deployed (useful to manage tokens). Currently the upgrade is not supported out of the box, but you can use sozo execute using the name of those contracts, which ease the interaction. However, if you change the code of the contract, it will be re-declared/deployed by Sozo and the address will change. Please refer to the example in spawn and move: https://github.com/dojoengine/dojo/blob/5e1f3b93e769d135b7a01d3c7e648cc9e0f7e7fa/examples/spawn-and-move/dojo_dev.toml#L26. Don’t hesitate if you have feedback on this feature, to iterate and reach a more mature state.

Torii

  • Controller accounts are now indexed.
  • Support to upgrade enums variant and widening primitive types.
  • ERC20, ERC721 and ERC1155 are supported and queryable. Some GraphQL methods need some review though. On the gRPC side it should be more mature. Subscriptions are also available.
  • Several fixes on clauses and querying.

Katana

  • When —block-time is used, no more empty block will be produce when the block time is reached. The block time will start upon the reception of the first transaction of the block.
  • The chain spec for provable Katana has more commands to work with. Still experimental and will be detailed in a future release.

What's Changed

  • feat(katana): check predeployed settlement contract is configured correctly by @kariy in #2971
  • feat(katana): katana config by @kariy in #2972
  • dep: bump cainome to 0.14.12 by @kariy in #2973
  • fix: add explicit edition for test cairo contracts across the repo by @glihm in #2974
  • feat(core): add tests for event upgrades by @remybar in #2976
  • fix(torii-grpc): event processing subscription by @Larkooo in #2975
  • feat(torii-indexer): add option for strict model reader block by @Larkooo in #2954
  • feat(torii): indexing cartridge controllers by @Larkooo in #2959
  • feat(katana): revert blockifier bump by @kariy in #2979
  • feat(katana): config ls by @kariy in #2983
  • feat(torii-sqlite): support enum upgrade of variants by @Larkooo in #2930
  • fix: typos in documentation files by @kilavvy in #2987
  • feat(katana): non-interactive init by @kariy in #2988
  • feat(katana): Cairo short string by @kariy in #2991
  • feat(sozo-walnut): remove sensitive data from dojo configuration file by @marijamijailovic in #2978
  • fix(torii-sqlite): erc721 tokens upsert do nothing by @Larkooo in #2986
  • feat(torii): add eth address to ty and remove usize by @Larkooo in #2989
  • refactor(torii-indexer): add token contract address to task identifier by @Larkooo in #2985
  • fix(sozo): model get not using prefixes by @emarc99 in #2867
  • fix(torii-erc): lenient parsing for invalid json for erc721 by @Larkooo in #2977
  • feat(torii): retrieve controllers & usernames graphql and grpc by @Larkooo in #2992
  • feat(torii-sqlite): primitive upgrades towards bigger types by @Larkooo in #2931
  • fix(torii-graphql): empty models union workaround by @Larkooo in #2994
  • feat(torii-client): retrieve controllers from client by @Larkooo in #2996
  • fix(katana): data gas prices by @augustin-v in #3001
  • perf(katana): optimisations + benchmark setup by @remybar in #2900
  • fix(katana): skip legacy class when fetching compiled class hash by @kariy in #2998
  • feat(torii-grpc): subscribe to token updates (metadata etc.) by @Larkooo in #2990
  • fix(katana-contracts): update piltover by @glihm in #2980
  • feat(katana): automatically close block if resources limit reached by @kariy in #3003
  • feat: remove starknet-messaging feature by @glihm in #3005
  • feat(torii-grpc): correct keys clause models predicate by @Larkooo in #3000
  • feat(torii-graphql): subscriptions for tokens and token balances by @Larkooo in #2999
  • feat(katana): global compiled class cache by @kariy in #3004
  • bench(katana): class compilation by @kariy in #3010
  • feat(katana): exact path for chain config by @kariy in #3009
  • feat(sozo): External contracts management by @remybar in #2995
  • feat(torii): add support for erc1155 by @Larkooo in #2955
  • refactor(torii): token id column in tokens table for erc721 by @Larkooo in #3008
  • feat(torii-client): token subscription & update subscription via id by @Larkooo in #3006
  • refactor(katana): move messaging into its own crate by @kariy in #3013
  • feat(katana): initialize slot paymaster account by @kariy in #3014
  • chore: bump alloy deps by @kariy in #3012
  • feat: add support for #[dojo::library] by @notV4l in #2938
  • ci(workflows): add preview support in main release by @steebchen in #3007
  • Prepare release: v1.2.0 by @tarrencev in #3015
  • fix(katana): ensure paymaster accounts are unique by @kariy in #3017
  • Prepare release: v1.2.0 by @tarrencev in #3020
  • [sozo] remove double library print by @notV4l in #3021
  • feat(katana): allow specifying multiple values w/o wrapping in quotes by @kariy in #3018
  • feat: remove fieldOrder in ts bindgen by @MartianGreed in #3024

New Contributors

Full Changelog: v1.1.2...v1.2.0