Releases: dojoengine/dojo
Releases · dojoengine/dojo
v1.2.1
Important Changes
- Katana now have a new parameter to determine the gas limit for RPC
call
s. - 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
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 au32
. 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
to0.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
- @kilavvy made their first contribution in #2987
- @marijamijailovic made their first contribution in #2978
- @emarc99 made their first contribution in #2867
Full Changelog: v1.1.2...v1.2.0
v1.1.2
Important changes
Mostly fixing the docker image issue.
What's Changed
- feat(katana): rollup and dev chain spec by @kariy in #2957
- chore(devcontainer): update image: v1.1.1 by @tarrencev in #2965
- fix: use bookworm-slim to check execution by @glihm in #2964
- feat(dojo-core): make the schema upgrade less strict by @remybar in #2925
- fix(torii-sqlite): deleting entity by @Larkooo in #2961
- ci(docker): sync dojo base image with build by @steebchen in #2966
- Prepare release: v1.1.2 by @tarrencev in #2970
Full Changelog: v1.1.1...v1.1.2
v1.1.1
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
- fix(dojo-core): remove unsupported syscall by @glihm in #2962
- chore(devcontainer): update image: v1.1.0 by @tarrencev in #2960
- Prepare release: v1.1.1 by @tarrencev in #2963
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Important changes
- Cairo
2.9.2
is now supported for smart contract development and used bysozo
. - Torii has several optimizations to parallelize the processing of events, which should result in faster syncing to reach the head of the chain.
- The
world.dns
has been fixed to return the actual class hash of the contract. - A new macro
bytearray_hash!
has been added, to reduce hash computation overhead and usage of constants when namespaces/contract names are fixed. - 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. - Sozo now supports arrays in calldata with a new prefix
arr
for dynamic arrays andfarr
for fixed-size arrays. Those prefix will work for any type that is one felt long when serialized. Foru256
, you will need to useu256arr
andu256farr
. 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
- 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
- @linchizhen made their first contribution in #2922
Full Changelog: v1.0.12...v1.1.0
v1.0.12
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
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
- @dashangcun made their first contribution in #2885
Full Changelog: v1.0.10...v1.0.11
v1.0.10
Important changes
- Walnut update to support the fork of Scarb of Dojo until proc macros are fully supported.
- Torii now has a runner like Katana has to setup tests, re-use in applications.
- Torii
StoreUpdateMember
processor has been updated, which allow member of models to be updated correctly. - Torii bug fixes on graphQL and gRPC.
- Katana fixes on starknet messaging and trie computation for SNOS.
- Sozo bindgen update for
dojo.js
SDK.
What's Changed
- chore(devcontainer): update image: v1.0.9 by @tarrencev in #2842
- feat: split calldata and provider call by @MartianGreed in #2852
- feat: add events in typescript bindgen + sort functions by name by @MartianGreed in #2853
- Merge
katana/dev
by @kariy in #2854 - chore(katana): hide init subcommand for now by @kariy in #2857
- refactor(katana): make gas oracle a critical task by @kariy in #2859
- fix(torii-core): correct parallelized task hash by @Larkooo in #2860
- fix(torii-core): remove old check for StoreUpdateMember processor by @glihm in #2858
- docs: readme by @Olexandr88 in #2861
- ci: add constraints on jobs to start based on linters by @glihm in #2866
- feat(sozo): introduce walnut verify command + execute "--walnut" flag enabled by @mobycrypt in #2734
- fix(katana-rpc-types): proofs types serde by @kariy in #2872
- feat(katana): classes trie hash by @kariy in #2876
- refactor(torii): fragment into different modules by @Larkooo in #2856
- chore: fix some typos in comment by @longxiangqiao in #2880
- refactor(libp2p): typed data crate + client server feature set by @Larkooo in #2877
- fix(torii-graphql): nullable array is empty string by @Larkooo in #2882
- refactor(torii): torii-runner by @Larkooo in #2881
- refactor(katana-messaging): remove message execution and fix hashing by @glihm in #2884
- Prepare release: v1.0.10 by @tarrencev in #2886
New Contributors
- @mobycrypt made their first contribution in #2734
- @longxiangqiao made their first contribution in #2880
Full Changelog: v1.0.9...v1.0.10
v1.0.9
Important changes
- Torii now supports subscriptions for token balances.
- Queries in gRPC now supports
In
andNotIn
comparison operators. - Katana's default class hash for pre-deployed ERC20 has been updated.
- Torii bug fixes.
What's Changed
- chore(devcontainer): update image: v1.0.8 by @tarrencev in #2815
- feat(torii-grpc): IN operator for comparison by @Larkooo in #2812
- Feat/bindgen improve types by @MartianGreed in #2816
- feat(katana): dedup fork request by @cwkang1998 in #2001
- feat(torii-core): add indices to speed up queries by @Larkooo in #2824
- Fix/bindgen types improvements by @MartianGreed in #2832
- fix(katana): update default erc20 class hash by @kariy in #2836
- refactor(dojo): change usage of trace! to avoid path prefix by @847850277 in #2830
- feat(torii-grpc): start rework to use 1 single query by @Larkooo in #2817
- feat(torii-grpc): add list to member value enum for usage in sdk by @Larkooo in #2828
- refactor(torii-gql): get rid of world indexing error by @Larkooo in #2827
- feat(torii): token balances subscription by @Larkooo in #2831
- refactor(torii-grpc): chunk schema joins to avoid sqlite join limit by @Larkooo in #2839
- fix(torii-core): client negative i128 conversion by @Larkooo in #2840
- Prepare release: v1.0.9 by @tarrencev in #2841
New Contributors
- @cwkang1998 made their first contribution in #2001
Full Changelog: v1.0.8...v1.0.9
v1.0.8
Important changes
- Torii: now the
Query
type forgRPC
has a new fieldentity_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
- chore(devcontainer): update image: v1.0.7 by @tarrencev in #2806
- feat: introduce updated at field in top level torii query by @edisontim in #2807
- opt(torii-grpc): entity updated after on entities table by @Larkooo in #2810
- Prepare release: v1.0.8 by @tarrencev in #2813
Full Changelog: v1.0.7...v1.0.8