Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
7c05909
chore: update starknet.js version
MartianGreed Aug 5, 2025
90b9e47
chore: bump starknet-react && dojo.c
MartianGreed Aug 26, 2025
9f3cf54
chore: release
MartianGreed Aug 26, 2025
a5a2202
chore: exit prerelease mode
MartianGreed Aug 26, 2025
1d54b8b
chore: bump dojo.c version
MartianGreed Aug 26, 2025
2241bae
chore: release
MartianGreed Aug 26, 2025
4c85a96
chore: exit prerelease mode
MartianGreed Aug 26, 2025
fafd293
fix(sdk): primitive types parsing from torii
MartianGreed Aug 26, 2025
e99bc1e
chore: release
MartianGreed Aug 26, 2025
59d3930
chore: exit prerelease mode
MartianGreed Aug 26, 2025
5c469f9
fix(sdk): ensure entityIds are properly padded
MartianGreed Aug 29, 2025
6f031c4
chore: release
MartianGreed Aug 29, 2025
cc37801
chore: exit prerelease mode
MartianGreed Aug 29, 2025
4a82fff
fix(sdk): ensure entityIds are properly padded
MartianGreed Sep 8, 2025
5d1d5e8
chore: release
MartianGreed Sep 8, 2025
264a02f
chore: exit prerelease mode
MartianGreed Sep 8, 2025
dd7e505
chore: release
MartianGreed Sep 9, 2025
318813e
chore: exit prerelease mode
MartianGreed Sep 9, 2025
f734538
chore: bump minor version
MartianGreed Sep 9, 2025
96855b1
chore: release
MartianGreed Sep 9, 2025
f8b4de0
chore: exit prerelease mode
MartianGreed Sep 9, 2025
1aec48a
fix: add bun.lock
MartianGreed Sep 9, 2025
9c6e40e
fix: dependencies
MartianGreed Sep 9, 2025
7079692
fix: build
MartianGreed Sep 9, 2025
11ac45a
fix: tests
MartianGreed Sep 9, 2025
26e3383
fix: docs
MartianGreed Sep 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changeset/fifty-moons-film.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@dojoengine/utils": patch
"@dojoengine/sdk": patch
---

fix: ensure entity IDs are consistently padded across SDK

- Updated `getEntityIdFromKeys` to return properly padded entity IDs (66 characters: 0x + 64 hex)
- This fixes the issue where `waitForEntityChange` would return `undefined` when using entity IDs from `getEntityIdFromKeys`
- Entity IDs are now consistently padded whether they come from Torii or are generated manually
- Resolves issues #484 and #485
16 changes: 16 additions & 0 deletions .changeset/huge-paths-switch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@dojoengine/predeployed-connector": minor
"@dojoengine/create-burner": minor
"@dojoengine/torii-wasm": minor
"@dojoengine/core": minor
"@dojoengine/create-dojo": minor
"@dojoengine/grpc": minor
"@dojoengine/react": minor
"@dojoengine/sdk": minor
"@dojoengine/state": minor
"@dojoengine/torii-client": minor
"@dojoengine/utils": minor
"@dojoengine/utils-wasm": minor
---

chore: bump dojo.c version
16 changes: 16 additions & 0 deletions .changeset/orange-points-prove.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@dojoengine/predeployed-connector": minor
"@dojoengine/create-burner": minor
"@dojoengine/torii-client": minor
"@dojoengine/create-dojo": minor
"@dojoengine/torii-wasm": minor
"@dojoengine/utils-wasm": minor
"@dojoengine/react": minor
"@dojoengine/state": minor
"@dojoengine/utils": minor
"@dojoengine/core": minor
"@dojoengine/grpc": minor
"@dojoengine/sdk": minor
---

chore: bump minor version
16 changes: 16 additions & 0 deletions .changeset/plenty-women-read.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@dojoengine/predeployed-connector": minor
"@dojoengine/create-burner": minor
"@dojoengine/torii-client": minor
"@dojoengine/create-dojo": minor
"@dojoengine/torii-wasm": minor
"@dojoengine/utils-wasm": minor
"@dojoengine/react": minor
"@dojoengine/state": minor
"@dojoengine/utils": minor
"@dojoengine/core": minor
"@dojoengine/grpc": minor
"@dojoengine/sdk": minor
---

fix(sdk): primitive parsing
43 changes: 43 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"mode": "exit",
"tag": "1.7-rc",
"initialVersions": {
"example-node-worker": "0.0.1",
"example-nodejs-bot": "0.0.0",
"example-predeployed-connector": "0.0.0",
"example-vanillajs-phaser-recs": "0.0.0",
"example-vite-experimental-sdk": "0.0.0",
"example-vite-grpc-playground": "0.0.0",
"example-vite-kitchen-sink": "0.1.0",
"example-vite-phaser-sdk": "1.5.4",
"example-vite-react-app-recs": "0.0.1",
"example-vite-react-phaser-recs": "0.1.0",
"example-vite-react-pwa-recs": "0.0.1",
"example-vite-react-sdk": "0.0.0",
"example-vite-react-sql": "1.0.0",
"example-vite-react-threejs-recs": "0.0.1",
"example-vite-svelte-recs": "0.0.0",
"example-vite-token-balance": "0.0.0",
"example-vue-app-recs": "0.0.0",
"@dojoengine/core": "1.7.0-preview.3",
"@dojoengine/create-burner": "1.7.0-preview.3",
"@dojoengine/create-dojo": "1.7.0-preview.3",
"@dojoengine/grpc": "0.1.0-preview.3",
"@dojoengine/predeployed-connector": "1.7.0-preview.3",
"@dojoengine/react": "1.7.0-preview.4",
"@dojoengine/sdk": "1.7.0-preview.4",
"@dojoengine/state": "1.7.0-preview.3",
"@dojoengine/torii-client": "1.7.0-preview.3",
"@dojoengine/torii-wasm": "1.7.0-preview.3",
"@dojoengine/utils": "1.7.0-preview.4",
"@dojoengine/utils-wasm": "1.7.0-preview.3"
},
"changesets": [
"fifty-moons-film",
"huge-paths-switch",
"orange-points-prove",
"plenty-women-read",
"smooth-dragons-write",
"tiny-suns-read"
]
}
16 changes: 16 additions & 0 deletions .changeset/smooth-dragons-write.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@dojoengine/predeployed-connector": minor
"@dojoengine/create-burner": minor
"@dojoengine/torii-wasm": minor
"@dojoengine/core": minor
"@dojoengine/create-dojo": minor
"@dojoengine/grpc": minor
"@dojoengine/react": minor
"@dojoengine/sdk": minor
"@dojoengine/state": minor
"@dojoengine/torii-client": minor
"@dojoengine/utils": minor
"@dojoengine/utils-wasm": minor
---

chore: bump starknet versions
16 changes: 16 additions & 0 deletions .changeset/tiny-suns-read.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@dojoengine/predeployed-connector": minor
"@dojoengine/create-burner": minor
"@dojoengine/torii-client": minor
"@dojoengine/create-dojo": minor
"@dojoengine/torii-wasm": minor
"@dojoengine/utils-wasm": minor
"@dojoengine/react": minor
"@dojoengine/state": minor
"@dojoengine/utils": minor
"@dojoengine/core": minor
"@dojoengine/grpc": minor
"@dojoengine/sdk": minor
Comment on lines +2 to +13
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Validate semver bump levels across packages

Most entries are marked "minor" while the body calls out a fix. Confirm whether any user‑visible features or API changes justify minor bumps; otherwise prefer "patch" to avoid unnecessary version churn.

Run to list public API changes since last tag:


🏁 Script executed:

#!/bin/bash
git fetch --tags --quiet
last_tag=$(git tag --list | sort -V | tail -n1)
echo "Comparing against $last_tag"
rg -nP '^(export|public)\s' -g 'packages/**/src/**/*.ts' -C2

Length of output: 209241


Switch bumps from minor to patch
All this changeset contains are bug fixes with no new public APIs—update the version bumps in .changeset/tiny-suns-read.md (lines 2–13) from minor to patch.

🤖 Prompt for AI Agents
In .changeset/tiny-suns-read.md around lines 2 to 13, the package version bumps
are incorrectly set to "minor" but these changes are bug fixes only; change each
occurrence of "minor" to "patch" for the listed packages so the changeset
reflects patch-level releases.

---

fix(sdk): ensure entityIds are properly padded
686 changes: 103 additions & 583 deletions bun.lock

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions examples/example-vanillajs-phaser-recs/src/dojo/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ export async function setup({ ...config }: Config) {
let burnerManager = null;
try {
burnerManager = new BurnerManager({
masterAccount: new Account(
rpcProvider,
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: rpcProvider,
address: config.masterAddress,
signer: config.masterPrivateKey,
}),
feeTokenAddress: config.feeTokenAddress,
Comment on lines 79 to 85
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Explicitly set cairoVersion on Account to avoid defaults drift.

Passing only signer may default to a different Cairo/tx version under newer starknet.js. Safer to pin Cairo 1 for these examples.

Apply:

-            masterAccount: new Account({
-                provider: rpcProvider,
-                address: config.masterAddress,
-                signer: config.masterPrivateKey,
-            }),
+            masterAccount: new Account({
+                provider: rpcProvider,
+                address: config.masterAddress,
+                signer: config.masterPrivateKey,
+                cairoVersion: "1",
+            }),
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
burnerManager = new BurnerManager({
masterAccount: new Account(
rpcProvider,
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: rpcProvider,
address: config.masterAddress,
signer: config.masterPrivateKey,
}),
feeTokenAddress: config.feeTokenAddress,
burnerManager = new BurnerManager({
masterAccount: new Account({
provider: rpcProvider,
address: config.masterAddress,
signer: config.masterPrivateKey,
cairoVersion: "1",
}),
feeTokenAddress: config.feeTokenAddress,
🤖 Prompt for AI Agents
In examples/example-vanillajs-phaser-recs/src/dojo/setup.ts around lines 79 to
85 the Account is created without an explicit cairoVersion which can drift with
newer starknet.js defaults; update the Account constructor to include
cairoVersion: "1" (or the appropriate pinned value) in its options so the
example consistently uses Cairo 1 and avoids future default changes.

accountClassHash: config.accountClassHash,

Expand Down
11 changes: 5 additions & 6 deletions examples/example-vite-react-app-recs/src/dojo/DojoContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,11 @@ export const DojoProvider = ({

const masterAccount = useMemo(
() =>
new Account(
dojoProvider.provider,
masterAddress,
masterPrivateKey,
"1"
),
new Account({
provider: dojoProvider.provider,
address: masterAddress,
signer: masterPrivateKey,
}),
[masterAddress, masterPrivateKey, dojoProvider.provider]
);

Expand Down
12 changes: 5 additions & 7 deletions examples/example-vite-react-app-recs/src/dojo/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,11 @@ export async function setup({ ...config }: DojoConfig) {

// Initialize the burner account manager
const burnerManager = new BurnerManager({
masterAccount: new Account(
{
nodeUrl: config.rpcUrl,
},
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: dojoProvider.provider,
address: config.masterAddress,
signer: config.masterPrivateKey,
}),
accountClassHash: config.accountClassHash,
rpcProvider: dojoProvider.provider,
feeTokenAddress: config.feeTokenAddress,
Expand Down
12 changes: 5 additions & 7 deletions examples/example-vite-react-phaser-recs/src/dojo/createBurner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ export const createBurner = async ({ ...config }: DojoConfig) => {
});

const burnerManager = new BurnerManager({
masterAccount: new Account(
{
nodeUrl: config.rpcUrl,
},
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: rpcProvider,
address: config.masterAddress,
signer: config.masterPrivateKey,
}),
accountClassHash: config.accountClassHash,
rpcProvider: rpcProvider,
feeTokenAddress: config.feeTokenAddress,
Expand Down
11 changes: 5 additions & 6 deletions examples/example-vite-react-pwa-recs/src/dojo/DojoContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,11 @@ export const DojoProvider = ({

const masterAccount = useMemo(
() =>
new Account(
dojoProvider.provider,
masterAddress,
masterPrivateKey,
"1"
),
new Account({
provider: dojoProvider.provider,
address: masterAddress,
signer: masterPrivateKey,
}),
[masterAddress, masterPrivateKey, dojoProvider.provider]
);

Expand Down
12 changes: 5 additions & 7 deletions examples/example-vite-react-pwa-recs/src/dojo/generated/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,11 @@ export async function setup({ ...config }: DojoConfig) {

// create burner manager
const burnerManager = new BurnerManager({
masterAccount: new Account(
{
nodeUrl: config.rpcUrl,
},
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: dojoProvider.provider,
address: config.masterAddress,
signer: config.masterPrivateKey
}),
accountClassHash: config.accountClassHash,
rpcProvider: dojoProvider.provider,
feeTokenAddress: config.feeTokenAddress,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,12 @@ export const DojoProvider = ({
);

const masterAccount = useMemo(
() => new Account(rpcProvider, masterAddress, masterPrivateKey),
() =>
new Account({
provider: rpcProvider,
address: masterAddress,
signer: masterPrivateKey,
}),
[rpcProvider, masterAddress, masterPrivateKey]
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,11 @@ export async function setup({ ...config }: DojoConfig) {
);

const burnerManager = new BurnerManager({
masterAccount: new Account(
{
nodeUrl: config.rpcUrl,
},
config.masterAddress,
config.masterPrivateKey
),
masterAccount: new Account({
provider: dojoProvider.provider,
address: config.masterAddress,
signer: config.masterPrivateKey
}),
accountClassHash: config.accountClassHash,
rpcProvider: dojoProvider.provider,
feeTokenAddress: config.feeTokenAddress,
Expand Down
4 changes: 2 additions & 2 deletions examples/example-vite-token-balance/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
"format": "biome format . --write"
},
"dependencies": {
"@cartridge/connector": "^0.7.6",
"@cartridge/controller": "^0.7.6",
"@cartridge/connector": "^0.10.0",
"@cartridge/controller": "^0.10.0",
"@dojoengine/core": "workspace:*",
"@dojoengine/predeployed-connector": "workspace:*",
"@dojoengine/sdk": "workspace:*",
Expand Down
9 changes: 4 additions & 5 deletions examples/example-vue-app-recs/src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,11 @@ export const getAccount = async (nodeUrl: string) => {
if (!address) {
return null;
}
const account = new Account(
const account = new Account({
provider,
address,
burners[address].privateKey,
"1"
);
signer: burners[address].privateKey,
});
return account;
Comment on lines +58 to 63
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Pin Cairo 1 in Account constructor.

Avoid relying on library defaults; match the classHash you deploy.

-    const account = new Account({
-        provider,
-        address,
-        signer: burners[address].privateKey,
-    });
+    const account = new Account({
+        provider,
+        address,
+        signer: burners[address].privateKey,
+        cairoVersion: "1",
+    });
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const account = new Account({
provider,
address,
burners[address].privateKey,
"1"
);
signer: burners[address].privateKey,
});
return account;
const account = new Account({
provider,
address,
signer: burners[address].privateKey,
cairoVersion: "1",
});
return account;
🤖 Prompt for AI Agents
In examples/example-vue-app-recs/src/utils/index.ts around lines 58 to 63, the
Account constructor relies on the library default for Cairo version which can
yield an unexpected classHash; explicitly pin Cairo 1 in the Account options
when constructing the Account (e.g., add the appropriate option to indicate
Cairo version = 1) so the Account uses the same classHash as your deployed
contract.

};

Expand All @@ -80,7 +79,7 @@ export const createAccount = async ({
CallData.compile({ publicKey }),
0
);
const account = new Account(provider, address, privateKey, "1");
const account = new Account({ provider, address, signer: privateKey });
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Pin Cairo 1 for the newly created account as well.

-    const account = new Account({ provider, address, signer: privateKey });
+    const account = new Account({
+        provider,
+        address,
+        signer: privateKey,
+        cairoVersion: "1",
+    });
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const account = new Account({ provider, address, signer: privateKey });
const account = new Account({
provider,
address,
signer: privateKey,
cairoVersion: "1",
});
🤖 Prompt for AI Agents
In examples/example-vue-app-recs/src/utils/index.ts around line 82, the newly
constructed Account does not pin the Cairo version; update the Account
constructor options to explicitly pin Cairo 1 (e.g., add the cairoVersion: 1
option to the new Account({...}) call) so the new account uses Cairo 1
consistently with the rest of the app and adjust any types/imports if required.

const { transaction_hash } = await account.deployAccount({
classHash,
constructorCalldata: CallData.compile({ publicKey }),
Expand Down
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
"examples/*"
],
"catalog": {
"starknet": "^7.6.2",
"starknet": "^8.1.2",
"@starknet-io/get-starknet-core": "4.0.7",
"@starknet-react/core": "^4.0.1-beta.4",
"@starknet-react/chains": "^4.0.1-beta.3",
"@starknet-io/types-js": "^0.8",
"@starknet-react/core": "^5.0.1",
"@starknet-react/chains": "^5.0.1",
"@starknet-io/types-js": "^0.9.1",
"@types/react": "^18.3.1",
"@types/react-dom": "^18.3.1",
"react": "^18.3.1",
Expand Down Expand Up @@ -49,20 +49,20 @@
"test:watch": "turbo watch test"
},
"devDependencies": {
"@biomejs/biome": "^2.1.3",
"@biomejs/biome": "^2.2.3",
"@commitlint/cli": "^18.6.1",
"@commitlint/config-conventional": "^18.6.3",
"@typhonjs-typedoc/typedoc-theme-dmt": "^0.2.3",
"husky": "^9.1.7",
"lerna": "^8.2.3",
"tsup": "^8.5.0",
"turbo": "^2.5.5",
"turbo": "^2.5.6",
"typedoc": "^0.26.11",
"typedoc-plugin-coverage": "^3.4.1",
"typedoc-plugin-missing-exports": "^3.1.0"
},
"dependencies": {
"@changesets/cli": "^2.29.5",
"@changesets/cli": "^2.29.6",
"@dojoengine/recs": "2.0.13"
},
"commitlint": {
Expand Down
30 changes: 30 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Change Log

## 1.7.0-1.7-rc.4

### Minor Changes

- 1a580dd: chore: bump minor version

## 1.7.0-preview.3

### Minor Changes

- 10314f1: fix(sdk): ensure entityIds are properly padded

## 1.7.0-preview.2

### Minor Changes

- c9a750e: fix(sdk): primitive parsing

## 1.7.0-preview.1

### Minor Changes

- 4790942: chore: bump dojo.c version

## 1.7.0-preview.0

### Minor Changes

- 88cac6e: chore: bump starknet versions

## 1.6.4

### Patch Changes
Expand Down
Loading
Loading