Releases: dojoengine/dojo
Releases · dojoengine/dojo
v1.3.1
Mostly bug fixes for Katana and Torii.
What's Changed
- chore(devcontainer): update image: v1.3.0 by @tarrencev in #3109
- feat(torii-grpc): retrieving and subscribe historical entities by @Larkooo in #3099
- refactor(torii-grpc): remove historical form subscriptions by @Larkooo in #3110
- fix(torii-grpc): ensure correct u256 token id deser by @Larkooo in #3111
- chore: remove
cargo-udeps
workflow by @kariy in #3112 - chore(katana): more descriptive error by @kariy in #3114
- katana: benchmark binary startup time by @kariy in #3115
- fix(katana): using outdated state when creating the paymaster txs by @kariy in #3117
- ci: include
katana
startup benchmark by @kariy in #3118 - feat(torii-indexer): transaction calls and outside calls by @Larkooo in #3085
- Prepare release: v1.3.1 by @tarrencev in #3121
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Important changes
- Controller is now available on Katana for local development. The option
--cartridge.paymaster
enables it. - Torii: various bug fixes on the querying and internal file management.
- Torii: off chain signed messages are now passes to all Toriis connected in peer-to-peer network. This allow off chain changes to be propagated to several Torii while syncing the same chain.
- Torii: indices can now be selected more granularly on the different models instead of having an index on all columns for each tables. This should allow more performance tuning based on the game design.
- Torii: MCP and SEE, a first iteration toward better integration of Dojo codebase and knowledge of your game for AI agents.
- Katana: support for sovereign rollups initialization.
- Katana: explorer is being worked on, this explorer will be embedded in Katana to ease development.
What's Changed
- chore(devcontainer): update image: v1.2.2 by @tarrencev in #3070
- fix: sozo build --typescript now properly orders contracts.gen.ts by @MartianGreed in #3074
- feat(katana) : add explorer flag and build folder by @ayushtom in #2997
- refactor(torii): entity update without being set before by @Larkooo in #3072
- opt(torii-server): initializing handlers by @Larkooo in #3078
- fix(signer): resolve keystore path before retrieving private key by @bengineer42 in #3076
- feat(katana) : add feature flag for controller by @ayushtom in #3080
- fix(torii-indexer): incoherent block ordering with multiple contracts by @Larkooo in #3081
- fix(torii-artifacts): ignore hash file from entries by @Larkooo in #3083
- feat(torii-sql): granular model indices by @Larkooo in #3073
- feat(torii-libp2p): inter torii messaging for offchain messages by @Larkooo in #3082
- feat(torii): add SSE support for mcp by @Larkooo in #3075
- refactor(torii-libp2p): ignore publish for empty peers & own messages by @Larkooo in #3092
- fix(torii-libp2p): ensure build not in wasm and avoid crash on invalid message by @glihm in #3093
- feat: add enum const types by @MartianGreed in #3091
- feat(katana): extract RpcOptions from ServerOptions by @notV4l in #3084
- feat(torii): historical entity updates by @Larkooo in #3090
- build(katana): explorer ui build script by @kariy in #3095
- fix(katana): move rpc merge outside of cfg feature server by @notV4l in #3103
- feat(katana): add support for sovereign mode for
init
command by @glihm in #3101 - refactor(torii-cli): merge derive for torii cli by @Larkooo in #3100
- feat: add cartridge_addExecuteOutsideTransaction rpc endpoint by @MartianGreed in #3058
- chore(devcontainer): update image: 92422db by @tarrencev in #3105
- feat(sozo): auto chunk blocks fetching world data by @okhaimie-dev in #2929
- Prepare release: v1.3.0 by @tarrencev in #3106
- feat(torii): add configurable DB cache by @edisontim in #3096
- fix(katana): ensure the messaging is not panicking when started in sovereign by @glihm in #3107
New Contributors
- @ayushtom made their first contribution in #2997
- @okhaimie-dev made their first contribution in #2929
Full Changelog: v1.2.2...v1.3.0
v1.2.2
Important changes
- L3 appchain messages are now usable with the regular
send_message_to_l1
sys call. - Torii fixes on ERC1155 and GraphQL union support.
- Katana updates for provable pipeline with mainnet support.
What's Changed
- chore(devcontainer): update image: v1.2.1 by @tarrencev in #3048
- fix(katana): ensure
block_cairo_steps_limit
is exposed inNodeArgsConfig
by @glihm in #3049 - fix(katana): bump blockifier to widen
MsgToL1.to_address
toFelt
by @glihm in #3050 - refactor(torii): model reader without call to world by @Larkooo in #3052
- test(torii): add metadata to erc1155 and update by @Larkooo in #3054
- sozo: make inspect faster by @notV4l in #3056
- feat(torii-graphql): add erc1155 to union by @Larkooo in #3057
- feat(torii-indexer): relation between txns and contracts by @Larkooo in #3055
- feat(torii-artifacts): refetch image if the image uri changed by @Larkooo in #3053
- feat(katana): support Starknet mainnet rollup initialization by @kariy in #3064
- feat(katana): make trie rpc types cloneable by @kariy in #3065
- fix(torii-graphql): option enums in arrays by @Larkooo in #3068
- fix: add --recs arg to sozo build by @MartianGreed in #3062
- feat(torii): erc options for max tasks & artifacts path by @Larkooo in #3061
- Prepare release: v1.2.2 by @tarrencev in #3069
Full Changelog: v1.2.1...v1.2.2
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