-
Notifications
You must be signed in to change notification settings - Fork 204
Releases: dojoengine/dojo
sozo/v1.8.7
5ddeb58 This release reverses a regression that was causing rejected transactions, makes sozo more tolerant of RPC version drift, and fixes a stale return value in the deployer that was breaking idempotent redeploys.
Behavior changes
sozo migrate no longer rejects transactions when gas prices move between blocks (#3406)
Since 67871d66, the account used by sozo migrate was pinned to Latest, so both nonce lookups and fee estimation read the most recently mined block. When gas prices moved, the resulting max_*_price could fall below what the next block actually required and the transaction was rejected.
The default is now back to PreConfirmed (the pre-0.17.0 behavior), so fee estimation and nonce lookups both target the block the transaction will land in.
A new global flag --account-block-id <latest | <block_number> | <block_hash>> lets you override this if you actually want the old Latest semantics.
If you scripted around the rejection (e.g. by inflating fee bounds or retrying), you can now drop those workarounds.
RPC spec version mismatch is a warning, not a fatal error (#3402)
Sozo was hard-erroring whenever a node reported a starknet_specVersion other than the one sozo was compiled against (0.9.0):
Unsupported Starknet RPC version: <x>, expected 0.9.0.
Every spec bump on a node sozo talked to therefore broke every command. This was overly defensive: the Starknet RPC spec is backward compatible across minor versions — a node serving a newer spec still answers the methods sozo uses with the same shape sozo expects. There's no need to abort up front.
The version mismatch (and any parse failure on the version string) is now a ui.warn(...) and execution continues. If a future spec bump ever turns out to be genuinely incompatible (a method removed, a field renamed), the failing RPC call will surface a specific error at the actual call site rather than a blanket abort at startup.
Assumption change: sozo previously assumed that any spec version other than
0.9.0was unsafe and refused to proceed. It now assumes future RPC specs remain backward compatible and only warns. Treat the warning as a signal that you may want to upgrade sozo, not as a sign that the current run will fail.
dojo-utils Deployer::deploy_via_udc returns the real address on the already-deployed path (#3404)
When the target contract was already deployed at the UDC-derived address, deploy_via_udc returned (Felt::ZERO, TransactionResult::Noop) instead of (real_address, Noop). Re-running a deploy with the same salt therefore wrote 0x0 into any downstream state file, breaking idempotent orchestration (this is what was hitting saya-ops core-contract deploy --salt <X> on retry).
The address is now always surfaced.
Breaking for direct
dojo-utilsconsumers: the internal helperdeploy_via_udc_getcallchanged signature fromResult<Option<(Felt, Call)>>toResult<(Felt, Option<Call>)>. TheOptionnow encodes "does a call need to be made", and the address is unconditional. Callers outside this repo that importdojo-utilsdirectly (notablysaya-ops) will need to update destructuring. End-users of thesozobinary are not affected at the CLI level — they just stop seeing0x0on re-runs.
Housekeeping (no behavior change for users of the sozo binary)
- ci: pin
starknet-foundryto0.55.0to unblock the test workflow (#3403) - dojoup: add
sayato the install script (#3399) - ci: enable and improve docs-sync workflow (#3398)
- chore: agent skills and standards (#3397, #3396)
Full Changelog: sozo/v1.8.6...sozo/v1.8.7
Assets 7
sozo/v1.8.6
24a2438 Important changes
This versions adds starknet network utilities like getting a block, transaction hash etc.. without depending on a dojo or scarb project.
For the reference, use sozo starknet --help or sozo sn --help.
What's Changed
- feat(sozo): add starknet commands like Starkli by @glihm in #3390
- release-sozo(prepare): v1.8.6 by @tarrencev in #3391
Full Changelog: sozo/v1.8.5...sozo/v1.8.6
Assets 7
sozo/v1.8.5
c849584 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_contract
You 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
Assets 7
sozo/v1.8.4
7c52a41 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
Assets 7
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
Assets 7
sozo/v1.8.2
9b36053 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
Assets 7
sozo/v1.8.1
2bb9d20 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
Assets 7
v1.8.0
843d276 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
Assets 7
v1.7.2
d6e97ff 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
Contributors
Assets 7
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