Skip to content

Releases: dojoengine/dojo

v1.2.1

18 Feb 14:37
3d4b1a3
Compare
Choose a tag to compare

Important Changes

  • Katana now have a new parameter to determine the gas limit for RPC calls.
  • Katana bug fix to avoid crash at restart for provable Katana.
  • Torii now supports EIP 4906 which should allow works around auto-refresh of tokens metadata when they are changed.
  • Torii bug fixes including u256 serialization and ERC20 token id indexing.

What's Changed

  • fix(katana): unbound call execution from the block context limit by @kariy in #3026
  • chore(devcontainer): update image: v1.2.0 by @tarrencev in #3027
  • refactor(torii-grpc): filter by token id & refactor token protos by @Larkooo in #3016
  • refactor(torii-client): cleanup & remove rpc by @Larkooo in #3019
  • fix(katana): include salt in genesis accounts by @kariy in #3031
  • fix(torii): erc graphql image path & http ratelimiting by @Larkooo in #3032
  • fix(dojo-core): add test to showcase serialization issue on options by @glihm in #3036
  • feat(katana): conversion function from/to starknet-rs types by @kariy in #3037
  • feat(katana-messaging): remove sending messages to settlement layer by @glihm in #3035
  • test(katana): feeder gateway tests by @kariy in #3038
  • test(torii-indexer): add tests for erc tokens by @Larkooo in #3033
  • fix(torii): u256 json serialization as string by @Larkooo in #3042
  • fix(torii-grpc): handle case token id for erc20 by @Larkooo in #3041
  • feat(katana): configurable max gas for rpc call by @Larkooo in #3043
  • fix(katana): compute genesis state root in a separate provider by @kariy in #3045
  • feat(torii-indexer): eip 4906 update metadata processor by @Larkooo in #2984
  • fix(katana): merging server args from file by @kariy in #3044
  • Prepare release: v1.2.1 by @tarrencev in #3046

Full Changelog: v1.2.0...v1.2.1

v1.2.0

13 Feb 18:33
596f96d
Compare
Choose a tag to compare

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

v1.1.2

29 Jan 17:59
4f3373e
Compare
Choose a tag to compare

Important changes

Mostly fixing the docker image issue.

What's Changed

Full Changelog: v1.1.1...v1.1.2

v1.1.1

28 Jan 19:01
dba10f2
Compare
Choose a tag to compare

Important changes

Removes the use of unsupported syscall to get class hash. Will be reintroduced when starknet 0.13.4 will be out.

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

28 Jan 05:29
Compare
Choose a tag to compare

Important changes

  1. Cairo 2.9.2 is now supported for smart contract development and used by sozo.
  2. Torii has several optimizations to parallelize the processing of events, which should result in faster syncing to reach the head of the chain.
  3. The world.dns has been fixed to return the actual class hash of the contract.
  4. A new macro bytearray_hash! has been added, to reduce hash computation overhead and usage of constants when namespaces/contract names are fixed.
  5. A new world.read_schema API is available to more efficiently read multiple members of a model from the storage, more details in the doc here. write_schema will come in a future release. Schemas are more efficient if you need to read more than one member.
  6. Sozo now supports arrays in calldata with a new prefix arr for dynamic arrays and farr for fixed-size arrays. Those prefix will work for any type that is one felt long when serialized. For u256, you will need to use u256arr and u256farr. Arrays of custom structure is not yet supported.
# No need to prefix the length.
sozo execute actions system1 arr:1,2,3,4

# If you have a fixed array, use the `farr` instead.
sozo execute actions system2 farr:88,99
  1. Katana adjustments to prepare for appchains release.

What's Changed

  • chore(devcontainer): update image: v1.0.12 by @tarrencev in #2916
  • feat: bump to cairo 2.9.2 by @glihm in #2879
  • chore(devcontainer): update image: b37b325 by @tarrencev in #2924
  • feat(sozo): support arrays in calldata arguments by @remybar in #2917
  • fix(sozo): return error if inspect doesn't find resource by @glihm in #2920
  • feat(katana): settlement layer initialization flow improvement by @kariy in #2926
  • feat(katana): remove support for initializing custom settlement chain by @kariy in #2927
  • feat(sozo-bindgen): add i8,i16,i32,i64 support by @MartianGreed in #2934
  • chore: fix some typos in comment by @linchizhen in #2922
  • fix(dojo-lang): ensure the dns returns the actual ClassHash. by @glihm in #2935
  • fix(torii-sqlite): executor broker messages & ipfs logging by @Larkooo in #2923
  • fix(sozo): ensure correct event fetching + namespace whitelisting + guest mode by @glihm in #2937
  • fix(katana-cli): use messaging in config file by @broody in #2941
  • docs(katana): update monitoring example by @kariy in #2942
  • feat(torii-indexer): task manager & parallelize erc transfers by @Larkooo in #2913
  • fix(dojo-lang): verify constructor args to follow dojo rules by @glihm in #2944
  • Merge katana/chainspec by @kariy in #2947
  • feat(dojo-core): add support for making multiple model pointers by @bengineer42 in #2940
  • feat(dojo-lang): add bytearray_hash macro by @bengineer42 in #2946
  • refactor(katana): use the exact same UDC class as Starknet by @kariy in #2949
  • feat(katana): simplify genesis class by @kariy in #2948
  • chore: rm saya by @kariy in #2951
  • feat(katana): start block timer only if there txs by @kariy in #2950
  • feat(dojo-core): add support to read/write the same member from multiple models by @bengineer42 in #2939
  • feat(dojo-core): add read schema support by @bengineer42 in #2932
  • feat(blockifier): use same versioned constant as snos by @kariy in #2956
  • Prepare release: v1.1.0 by @tarrencev in #2958

New Contributors

Full Changelog: v1.0.12...v1.1.0

v1.0.12

16 Jan 15:29
5f74aae
Compare
Choose a tag to compare

Important change

  • sozo execute now supports multi call, and breaking change ⚠️ the argument format has slightly changed. Now it's:
sozo execute <CONTRACT> <ENTRYPOINT> [calldata_1 calldata_2 calldata_3]

No more commas. Doc has been updated: https://book.dojoengine.org/toolchain/sozo/world-commands/execute#sozo-execute

  • Torii optimization by parallelizing the processing of events.
  • Sozo will now raise an error if the keys of a model/event are not placed before any other non-key fields.

What's Changed

  • chore(devcontainer): update image: v1.0.11 by @tarrencev in #2910
  • refactor(torii): max conns to tasks & dont use sqlite acquire by @Larkooo in #2911
  • ci(docker): add missing ca-certificates and SSL certs copy by @steebchen in #2914
  • fix(dojo-lang): remove restriction for u256 as keys in models by @bengineer42 in #2890
  • feat(sozo): support multicall for execute command by @remybar in #2897
  • fix(dojo-lang): raise an error on value before key in model by @bengineer42 in #2891
  • feat(torii-indexer): parallelize models & event messages by @Larkooo in #2912
  • Prepare release: v1.0.12 by @tarrencev in #2915

Full Changelog: v1.0.11...v1.0.12

v1.0.11

15 Jan 01:34
2c77db4
Compare
Choose a tag to compare

Important changes

  • Torii fixes for GraphQL queries with filter on nested values.
  • Dojo.js binding generation now properly expands for the user defined enumeration, even if all the variants are using the unit type.
  • Katana fixes related to persistent L3.
  • Katana now enables again the dev api (mostly for the predeployedAccounts) when --dev is used.
  • Sozo should now be less strict on the tags used to compile dojo, by using a SemVer comparison instead of string tag matching.

What's Changed

  • chore(devcontainer): update image: v1.0.10 by @tarrencev in #2889
  • chore: fix wrong keywords in comment by @dashangcun in #2885
  • fix(katana): genesis deprecated declared classes in state updates by @kariy in #2893
  • chore(katana): use workspace dep by @kariy in #2895
  • feat(katana): special block hash registry contract by @kariy in #2894
  • fix(katana-cli): ensure compilation without server feature by @glihm in #2896
  • fix: enable dev api automatically with dev flag by @glihm in #2901
  • feat(sozo): split hash command into 'hash compute' and 'hash find' by @remybar in #2892
  • feat: change enum to CairoCustomEnum by @MartianGreed in #2907
  • refactor: log targets not snakecase by @Larkooo in #2904
  • fix(katana): separate deprecated declared class by @kariy in #2903
  • feat(torii-graphql): filter on nested values by @Larkooo in #2905
  • feat(sozo): apply semver to tag versions by @glihm in #2909
  • Prepare release: v1.0.11 by @tarrencev in #2908

New Contributors

Full Changelog: v1.0.10...v1.0.11

v1.0.10

10 Jan 15:52
80ac6d1
Compare
Choose a tag to compare

Important changes

  1. Walnut update to support the fork of Scarb of Dojo until proc macros are fully supported.
  2. Torii now has a runner like Katana has to setup tests, re-use in applications.
  3. Torii StoreUpdateMember processor has been updated, which allow member of models to be updated correctly.
  4. Torii bug fixes on graphQL and gRPC.
  5. Katana fixes on starknet messaging and trie computation for SNOS.
  6. Sozo bindgen update for dojo.js SDK.

What's Changed

New Contributors

Full Changelog: v1.0.9...v1.0.10

v1.0.9

23 Dec 21:24
04b5f02
Compare
Choose a tag to compare

Important changes

  • Torii now supports subscriptions for token balances.
  • Queries in gRPC now supports In and NotIn comparison operators.
  • Katana's default class hash for pre-deployed ERC20 has been updated.
  • Torii bug fixes.

What's Changed

New Contributors

Full Changelog: v1.0.8...v1.0.9

v1.0.8

16 Dec 23:11
3f9c309
Compare
Choose a tag to compare

Important changes

  • Torii: now the Query type for gRPC has a new field entity_updated_after, which is a timestamp used to (inclusively) retrieve entities that has been updated after the provided unix timestamp (in seconds).

What's Changed

Full Changelog: v1.0.7...v1.0.8