Releases: dojoengine/dojo
sozo/v1.8.5
Important changes
This release includes a change to manipulate the ABI format in the manifest.
The migration (`sozo migrate) outputs a manifest file, which is a JSON file that contains information about deployed contracts and resources.
By default, the manifest will contain all the ABIs merged in only one entry "abis", where Sozo deduplicates the ABIs and makes the manifest easier to read/track diffs (this is called the all_in_one format). There is a second per contract (per_contract format), where the ABIs are separated by contract.
The per_contract format is currently required in one specific case: if you are using dojo.js and if you have the same function name in multiple contracts.
You can toggle the abi format mode by using --manifest-abi-format all_in_one/per_contract directly from the command line when running the sozo migrate command.
sozo migrate --manifest-abi-format per_contractYou can also set the default abi format mode in your dojo_<profile>.toml file by setting the manifest_abi_format key to all_in_one or per_contract.
[migration]
manifest_abi_format = "per_contract"What's Changed
- feat(sozo): add parameter to control abi format in manifest by @glihm in #3387
- release-sozo(prepare): v1.8.5 by @tarrencev in #3388
Full Changelog: sozo/v1.8.4...sozo/v1.8.5
sozo/v1.8.4
Important changes
This release adds auto-detection for blake2s for mainnet which is now using blake2s.
What's Changed
- release-sozo(prepare): v1.8.4 by @tarrencev in #3386
Full Changelog: sozo/v1.8.3...sozo/v1.8.4
sozo/v1.8.3
Important changes
This release provides an invoke command to Sozo in order to send invoke transaction on contracts without the dojo context being required. Use execute if you want to use contract names in the dojo context.
What's Changed
- feat(sozo): add invoke command for standalone contract by @glihm in #3384
- release-sozo(prepare): v1.8.3 by @tarrencev in #3385
Full Changelog: sozo/v1.8.2...sozo/v1.8.3
sozo/v1.8.2
Important changes
This release add capabilities to sozo to declare and deploy standalone contracts using sozo declare and sozo deploy. Independently of a dojo project.
However, those commands are only compatible with latest version of Cairo, it is not intended to support old versions of the compiler.
What's Changed
- feat: add declare and deploy to sozo by @glihm in #3382
- release-sozo(prepare): v1.8.2 by @tarrencev in #3383
Full Changelog: sozo/v1.8.1...sozo/v1.8.2
sozo/v1.8.1
Important changes
This version of Sozo supports blake2s hashing on Sepolia.
Sozo will attempt to detect the network you are using to use blake2s on sepolia or Poseidon on mainnet.
In case that your RPC URL doesn't contain "sepolia" or "testnet", you can use the flag --use-blake2s-casm-class-hash.
What's Changed
- feat(sozo): add support for blake2s casm class hashing by @glihm in #3377
- release-sozo(prepare): v1.8.1 by @tarrencev in #3380
- feat(ci): separate sozo releases from dojo by @glihm in #3381
Full Changelog: v1.8.0...sozo/v1.8.1
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 [email protected] 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