Releases: dojoengine/dojo
v1.8.0
Important changes
- Cairo
2.13and Starknet Foundry0.51are now used for the world and resources contracts to benefit Cairo compiler and scarb optimizations. - The world has a new constructor to simplify its deployment. Nothing else has changed in the world's API, so it is safe to upgrade existing worlds.
- New manifest format with an
abiskey that regroup deduplicated ABI entries for all the contracts in the project. The members are now correctly set for events and models, which eases the parsing and ABI matching.
What's Changed
- feat(dojo-world): change manifest format including members for events and models by @glihm in #3370
- chore: bump to cairo 2.13 and update world constructor by @glihm in #3372
- release-macros(prepare): v1.8.0 by @tarrencev in #3373
- release(prepare): v1.8.0 by @tarrencev in #3374
Full Changelog: v1.7.2...v1.8.0
v1.7.2
Important changes
- Sozo will now use
ACCEPTED_ON_L2as the default transaction finality status to ensure more robust migrations. - Sozo now correctly handles all type of gas settings to setup fee configuration for transactions.
- Update support for walnut debugger.
- Starknet Foundry 0.50+ is now used by
dojo_snf_test.
What's Changed
- feat(dojo-core): add
WORLD_VERSIONin cairo module andIWorldDispatcherby @glihm in #3357 - chore(devcontainer): update image: v1.7.1 by @tarrencev in #3349
- fix(schema): lossy utf8 decoding for bytearrays by @Larkooo in #3358
- fix(dojoup): improve asdf installer script by @kronosapiens in #3360
- Use app_version_info for cairo_version by @marijamijailovic in #3361
- chore(sozo): support all kind of gas by @notV4l in #3364
- feat(sozo): add world factory output by @glihm in #3362
- fix(ci): ensure the dojo package is correctly checked by @glihm in #3368
- release(prepare): v1.7.2 by @tarrencev in #3369
Full Changelog: v1.7.1...v1.7.2
v1.7.1
Important changes
Dojo
Proc macros are now precompiled and reexported. Your Scarb.toml manifest should import dojo as following:
[dependencies]
dojo = "1.7.1"
[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"
[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]The allow-prebuilt-plugins will use the pre-built proc macros instead of re-compiling them locally, which remove the need of maintaining a local rust installation.
You also don't have to care about the versions of dojo_cairo_macros, it will be handled automatically.
Additionally to that, the Scarb warning about the name not matching has been removed by renaming the rust crate to dojo_cairo_macros.
Sozo
Sozo now limits by default to 10 calls the number of calls in a multi call to avoid timeouts while deploying your world.
You can always adapt this value with the --max-calls option, since it depends on the size of your resources name.
What's Changed
- fix(dojo-core): reexport dojo cairo macros by @piotmag769 in #3350
- fix(sozo): change default max-calls to 10 calls by @glihm in #3351
- chore: extract dojo cairo macros from the workspace and clean deps by @glihm in #3352
- release-macros(prepare): v1.7.1 by @tarrencev in #3353
- fix(ci): add support for dojo cairo macro releases by @glihm in #3354
- release(prepare): v1.7.1 by @tarrencev in #3355
New Contributors
- @piotmag769 made their first contribution in #3350
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Important changes
This release stabilizes the support for:
- Stakrnet 0.14.
- RPC 0.9.
- Cairo proc macros for Dojo (instead of built-in compiler).
On the Sozo side:
- New CLI with better output for CI.
- Several level of verbosity with
-v,-vvand-vvvdepending on your needs. - Sozo now uses stable scarb under the hood (
2.12.2). You can still usesozo buildandsozo testfor extended functionalities.
For the Dojo core contracts:
- New
DojoStoretrait to avoid uninitialized storage access. - Gas optimizations for world's operation.
- Please consult the migration guide in the book for more information.
What's Changed
- Update starter link after
dojoup installby @kronosapiens in #3234 - chore(devcontainer): update image: v1.5.1 by @tarrencev in #3233
- Fix broken getting started link in README by @ritik4ever in #3235
- Update DEVELOPMENT.md by @kronosapiens in #3236
- feat: bump rpc spec to 0.8 by @kariy in #3179
- release(prepare): v1.6.0-alpha.0 by @tarrencev in #3241
- fix(dojoup): remove new line in the source cmd by @bengineer42 in #3244
- chore: edited the build badge and its link by @braveocheretovych in #3221
- chore(devcontainer): update image: v1.6.0-alpha.0 by @tarrencev in #3242
- chore: add katana 1.5.4 by @kariy in #3245
- chore: add the missing backticks in the comments by @one230six in #3243
- fix(bindgen): use world namespace for imported models in TypeScript S… by @MartianGreed in #3249
- fix(bindgen): filter out Value models by @MartianGreed in #3248
- fix(bindgen): fix ts bytearray type mapping by @MartianGreed in #3247
- chore: update katana versions by @kariy in #3253
- sozo(unrealengine): handle UE5.6 and Dojo 1.5 by @caillef in #3252
- Fix assert caller permission by @remybar in #3254
- feat(sozo): create standalone bindgen command by @MartianGreed in #3246
- feat(sozo): add MCP sever by @glihm in #3256
- refactor(types): schema json sql value by @Larkooo in #3257
- chore(versions): update torii versions by @Larkooo in #3261
- release(prepare): vv1.6.0-alpha.1 by @tarrencev in #3262
- chore(devcontainer): update image: v1.6.0-alpha.1 by @tarrencev in #3264
- chore(versions): allow katana 1.6.0 on alpha by @steebchen in #3270
- chore(versions): add Dojo 1.6.0-alpha.1 by @kariy in #3272
- refactor(sozo): check RPC spec compatibility by @kariy in #3271
- chore: fix some minor issues in the comments by @rustfix in #3268
- fix(core): allow fixed layout upgrade for class hash change by @glihm in #3274
- release(prepare): v1.6.0-alpha.2 by @tarrencev in #3276
- chore: add Katana 1.6.1 by @kariy in #3277
- chore: add Katana 1.6.2 by @kariy in #3280
- feat: implement proc macro + starknet foundry + cairo optimizations by @glihm in #3266
- chore(devcontainer): update image: v1.6.0-alpha.2 by @tarrencev in #3278
- chore: add katana@1.6.3 by @kariy in #3283
- fix(utils/invoker): add split for big multicalls by @glihm in #3284
- chore(devcontainer): update image: v1.6.0 by @tarrencev in #3282
- chore: fix some typos in comment by @pingshuijie in #3286
- refactor(sozo): improve error message on loading non-existent World state by @remybar in #3297
- feat(starknet): bump JSON-RPC spec to v0.9.0-rc.2 by @kariy in #3293
- feat(core): split Introspect and DojoStore derive attributes by @remybar in #3294
- fix(core): FixedArray Ty/Layout improvements by @remybar in #3296
- release(prepare): v1.7.0-alpha.0 by @tarrencev in #3299
- ci(release): remove references of language server by @kariy in #3300
- chore(versions): bump torii 1.6.1 by @steebchen in #3302
- fix(torii): update deserializer to handle new Dojo storage system. by @remybar in #3301
- feat(rpc): update supported RPC version by @kariy in #3303
- release(prepare): v1.7.0-alpha.1 by @tarrencev in #3304
- fix(sozo): fix sozo --version by @remybar in #3305
- refactor(types): serialize fixed array to object w size by @Larkooo in #3306
- chore: add dojo 1.7.0 by @kariy in #3307
- chore(devcontainer): update image: v1.7.0-alpha.1 by @tarrencev in #3290
- chore: validate
versions.jsonentries by @kariy in #3308 - refactor: simplify validation script by @kariy in #3310
- chore: add katana 1.7.0-alpha.2 by @kariy in #3311
- chore: Dojo clean up by @remybar in #3309
- fix: include full error details in sozo execute failures by @tarrencev in #3315
- chore: fix couple of typos in comment in
build.rsby @gap-editor in #3317 - chore: update version registry by @kariy in #3319
- feat(core): rename DojoStore functions to avoid conflicts with Serde by @remybar in #3313
- fix(core): upgrade checks for key members by @remybar in #3285
- fix(sozo): improve
use_legacy_storage()function to handle entrypoint not found by @remybar in #3312 - fix(primitive): from sql value and json & tests by @Larkooo in #3291
- chore: bump
katana-runnerrev by @kariy in #3320 - Add
asdf-installscript by @kronosapiens in #3323 - feat: bump
cairo-lang-*deps to2.12.0andstarknetto0.17.0by @kariy in #3322 - chore(devcontainer): update image: v1.7.0-alpha.2 by @tarrencev in #3325
- Add docs-sync to Github workflows by @kronosapiens in #3318
- fix(constants): correct typo in BIGNUMBERISH_IMPORT constant name by @VolodymyrBg in #3281
- fix(dojo-core): model keys serialization with Serde by @remybar in #3326
- fix(sozo): rework the detection of Dojo default package by @glihm in #3327
- refacto(bindgen): remove deprecated typescript_v2 by @glihm in #3328
- release(prepare): v1.7.0-alpha.3 by @tarrencev in #3329
- chore(devcontainer): update image: v1.7.0-alpha.3 by @tarrencev in #3330
- fix(dojo-core): LegacyModel/DojoStore review by @remybar in #3332
- fix(dojo-core): derive Serde on WorldStorage by @glihm in #3334
- chore: bump to cairo
2.12.2by @glihm in #3335 - release(prepare): v1.7.0-alpha.4 by @tarrencev in #3338
- fix(schema): key deser should always be legacy by @Larkooo in #3341
- chore(devcontainer): update image: v1.7.0-alpha.4 by @tarrencev in #3339
- fix(bindgen/typescript): ensure
ModelValueonly are filtered out by @glihm in #3343 - fix(bindgen): rework function filtering to include free functions by @glihm in #3344
- feat(sozo): rework UI by @remybar in #3342
- fix(dojo-bindgen): export all types including non-model/event types by @glihm in #3347
- release(prepare): v1.7.0 by @tarrencev in #3348
New Contributors
- @ritik4ever made their first contribution in #3235
- @braveocheretovych made their first contribution in #3221
- @one230six made their first contributi...
v1.7.0-alpha.4
Important changes
This release is using a new stable version of Scarb: 2.12.2. Please update your .tools-version to use this stable version of Scarb that comes with several fixes required for bigger projects to compile.
At the Dojo level:
- Issues with enums used a keys have been solved.
- The layout equal to 0 is now fixed.
DojoStoreandDojoLegacyStorehad some edge cases fixed in this PR to ensure backward compatibility of models.
What's Changed
- chore(devcontainer): update image: v1.7.0-alpha.3 by @tarrencev in #3330
- fix(dojo-core): LegacyModel/DojoStore review by @remybar in #3332
- fix(dojo-core): derive Serde on WorldStorage by @glihm in #3334
- chore: bump to cairo
2.12.2by @glihm in #3335 - release(prepare): v1.7.0-alpha.4 by @tarrencev in #3338
Full Changelog: v1.7.0-alpha.3...v1.7.0-alpha.4
v1.7.0-alpha.3
Important fixes
this release comes with two major fixes:
- The dojo macro had an issue when serializing enumerations as keys in models. This bug sneaked in when we merge the proc macros upgrade. You can now use enums as keys in model in this version as expected.
- The sozo build command was failing on some workspaces in which only libraries were found. Now sozo correctly parses the different packages in the workspace to extract the default name when building. If you find yourself stuck in such place in the future, remember that you can always build with scarb now. Sozo build only adds the statistics and binding generation layers.
- Typescript v2 binding generation has been removed since unused.
What's Changed
- chore(devcontainer): update image: v1.7.0-alpha.2 by @tarrencev in #3325
- Add docs-sync to Github workflows by @kronosapiens in #3318
- fix(constants): correct typo in BIGNUMBERISH_IMPORT constant name by @VolodymyrBg in #3281
- fix(dojo-core): model keys serialization with Serde by @remybar in #3326
- fix(sozo): rework the detection of Dojo default package by @glihm in #3327
- refacto(bindgen): remove deprecated typescript_v2 by @glihm in #3328
- release(prepare): v1.7.0-alpha.3 by @tarrencev in #3329
New Contributors
- @VolodymyrBg made their first contribution in #3281
Full Changelog: v1.7.0-alpha.2...v1.7.0-alpha.3
v1.7.0-alpha.2
Important changes
This version comes with a dev version of Scarb, due to a bug fixed on the Scarb side. Please use dev-2025-09-05 version of Scarb at the moment. Once the stable release (expected to be 2.12.2) of Scarb including the fixes is out, you can transition to it.
Notable changes:
- Workspaces are now supported, Sozo can be used to build/test/migrate a dojo project from the workspace (the only condition is having the config files dojo_.toml at the workspace level). It is still valid to go into a package and use build/test/migrate too.
- Dojo is now correctly listed by the Cairo Language Server (provided by Scarb). You don't need to install anything extra, you may however want to enable those two settings. You shouldn't have anymore red lines, the navigation on definitions and type hints work correctly.
- Migration handles correctly the new DECLARE transaction delay/nonce policies, which stabilizes the migration when several classes have to be migrated. Some nonce issues still happen in some rare cases with some INVOKE preceding the DECLARE. We are still monitoring that, don't hesitate to restart the migration if this happens.
- A new option
--no-scarb-warningscan now be used for sozo build/test to remove warning and focus on errors. - Coloring from Scarb is now correctly piped to Sozo, which ensures a way better devX for checking tests that pass or fails and compilation warnings/error.
- The dojo macros will now emit a compilation error if the name of a model is longer than
26 chars. This is due to the fact that Dojo adds aValuesuffix to the model name and the resulting string must fit into afelt252. - Introspect issues with
Optionshould be fixed (at least for some reported edge cases). If some issues persist even with this version, please reach out opening an issue or on the discord channels.
Troubleshooting:
If the asdf install scarb dev-2025-09-05 doesn't work, you may have an outdated version of asdf. Ensure you are using asdf 0.18.0 at least. You may want to remove/add the plugin too.
What's Changed
- fix(sozo): fix sozo --version by @remybar in #3305
- refactor(types): serialize fixed array to object w size by @Larkooo in #3306
- chore: add dojo 1.7.0 by @kariy in #3307
- chore(devcontainer): update image: v1.7.0-alpha.1 by @tarrencev in #3290
- chore: validate
versions.jsonentries by @kariy in #3308 - refactor: simplify validation script by @kariy in #3310
- chore: add katana 1.7.0-alpha.2 by @kariy in #3311
- chore: Dojo clean up by @remybar in #3309
- fix: include full error details in sozo execute failures by @tarrencev in #3315
- chore: fix couple of typos in comment in
build.rsby @gap-editor in #3317 - chore: update version registry by @kariy in #3319
- feat(core): rename DojoStore functions to avoid conflicts with Serde by @remybar in #3313
- fix(core): upgrade checks for key members by @remybar in #3285
- fix(sozo): improve
use_legacy_storage()function to handle entrypoint not found by @remybar in #3312 - fix(primitive): from sql value and json & tests by @Larkooo in #3291
- chore: bump
katana-runnerrev by @kariy in #3320 - Add
asdf-installscript by @kronosapiens in #3323 - feat: bump
cairo-lang-*deps to2.12.0andstarknetto0.17.0by @kariy in #3322
New Contributors
- @gap-editor made their first contribution in #3317
Full Changelog: v1.7.0-alpha.1...v1.7.0-alpha.2
v1.7.0-alpha.1
Update the supported RPC string to reflect the actual RPC version that Sozo supports.
Full Changelog: v1.7.0-alpha.0...v1.7.0-alpha.1
v1.7.0-alpha.0
What's Changed
- chore: add Katana 1.6.1 by @kariy in #3277
- chore: add Katana 1.6.2 by @kariy in #3280
- feat: implement proc macro + starknet foundry + cairo optimizations by @glihm in #3266
- chore(devcontainer): update image: v1.6.0-alpha.2 by @tarrencev in #3278
- chore: add katana@1.6.3 by @kariy in #3283
- fix(utils/invoker): add split for big multicalls by @glihm in #3284
- chore(devcontainer): update image: v1.6.0 by @tarrencev in #3282
- chore: fix some typos in comment by @pingshuijie in #3286
- refactor(sozo): improve error message on loading non-existent World state by @remybar in #3297
- feat(starknet): bump JSON-RPC spec to v0.9.0-rc.2 by @kariy in #3293
- feat(core): split Introspect and DojoStore derive attributes by @remybar in #3294
- fix(core): FixedArray Ty/Layout improvements by @remybar in #3296
- release(prepare): v1.7.0-alpha.0 by @tarrencev in #3299
- ci(release): remove references of language server by @kariy in #3300
New Contributors
- @pingshuijie made their first contribution in #3286
Full Changelog: v1.6.0-alpha.2...v1.7.0-alpha.0