Skip to content

chore(ops): bump dojo-utils to pick up idempotent deploy fix#65

Merged
kariy merged 2 commits into
mainfrom
chore/bump-dojo-utils-idempotent-deploy
Apr 22, 2026
Merged

chore(ops): bump dojo-utils to pick up idempotent deploy fix#65
kariy merged 2 commits into
mainfrom
chore/bump-dojo-utils-idempotent-deploy

Conversation

@kariy
Copy link
Copy Markdown
Member

@kariy kariy commented Apr 22, 2026

Summary

Advance saya's dojo-utils git dep from 4a374ac6 to 9b64ea8d — the merge commit of dojoengine/dojo#3404, which fixes Deployer::deploy_via_udc to return the real contract address (not Felt::ZERO) on the already-deployed path.

Lockfile-only change; bin/ops/Cargo.toml already pins branch = "main".

Why

Before dojo#3404, running saya-ops core-contract deploy --salt X twice against the same L2 emitted contract_address: "0x0" in both text and JSON output on the second run — because dojo-utils was dropping the real address on the is_deployed == true branch. Downstream orchestration (docker-compose init containers, CI scripts) then wrote 0x0 into state files and the next step panicked.

After the fix, deploy is idempotent: same salt → same address → same JSON shape, whether the contract was just deployed or was deployed last week.

Verification

Against a local katana dev chain that had already been deployed against with salt 0x7ee:

# Before this bump
$ saya-ops core-contract ... --output json declare-and-deploy-tee-registry-mock --salt 0x7ee
{"command":"...","contract_address":"0x0","salt":"0x7ee","tx_hash":null,"deployed_block":null}

# After this bump
$ saya-ops core-contract ... --output json declare-and-deploy-tee-registry-mock --salt 0x7ee
{"command":"...","contract_address":"0x37189b1807f1358074b70b3dc8ab79167bbf72cff1296286052f6dfe31c8f15","salt":"0x7ee","tx_hash":null,"deployed_block":null}

Test plan

  • cargo build -p saya-ops clean with bumped Cargo.lock
  • Idempotent redeploy with existing salt returns the real address (manual check against katana dev)
  • CI green

🤖 Generated with Claude Code

kariy and others added 2 commits April 22, 2026 13:41
dojoengine/dojo#3404 landed, fixing `Deployer::deploy_via_udc` so that
the already-deployed path returns the real UDC-derived contract
address instead of `Felt::ZERO`. Advancing saya's dojo-utils git dep
past that merge commit makes `saya-ops core-contract deploy` idempotent
across re-runs: a second invocation with the same salt now returns the
existing contract's address in both text and JSON output.

Lockfile-only change — `Cargo.toml` already pinned to
`branch = "main"`. Cargo just needed to refresh.

Verified against a local katana dev chain: running
`saya-ops core-contract declare-and-deploy-tee-registry-mock --salt 0x7ee`
against an L2 that had been previously deployed with the same salt now
returns the real contract address instead of "0x0".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tracking `branch = "main"` means anyone who runs `cargo update` picks
up whatever happens to be on dojoengine/dojo HEAD at that moment,
which can introduce unrelated behavior/API changes. Pin to the exact
rev (9b64ea8dc9bc6be8992dba87c104378dbf09b565 — the PR #3404 merge
commit) so dep advances are deliberate.

To pull future dojo-utils changes, bump the rev in Cargo.toml
explicitly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kariy kariy changed the title chore(ops): bump dojo-utils to pick up idempotent deploy fix chore(ops): bump dojo-utils to pick up idempotent deploy fix Apr 22, 2026
@kariy kariy merged commit f109098 into main Apr 22, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant