From 26c8cc07e016f3b7bf8193793075be49d34d4272 Mon Sep 17 00:00:00 2001 From: dk1a Date: Mon, 12 May 2025 20:40:59 +0300 Subject: [PATCH 1/2] fix(cli): use the final tx for stateBlock in deployCustomWorld --- packages/cli/src/deploy/deployCustomWorld.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/deploy/deployCustomWorld.ts b/packages/cli/src/deploy/deployCustomWorld.ts index ad6b2f4226..8b04df7f51 100644 --- a/packages/cli/src/deploy/deployCustomWorld.ts +++ b/packages/cli/src/deploy/deployCustomWorld.ts @@ -113,7 +113,12 @@ export async function deployCustomWorld({ functionName: "transferOwnership", args: [resourceToHex({ type: "namespace", namespace: "", name: "" }), client.account.address], }); - await waitForTransactions({ client, hashes: [transferOwnershipTx], debugLabel: "world ownership transfer" }); - return { ...deploy, stateBlock: deploy.deployBlock }; + debug("waiting for world ownership transfer"); + const finalStateReceipt = await waitForTransactionReceipt(client, { hash: transferOwnershipTx }); + if (finalStateReceipt.status === "reverted") { + throw new Error(`Transaction reverted: ${transferOwnershipTx}`); + } + + return { ...deploy, stateBlock: finalStateReceipt.blockNumber }; } From 9faa5d22b62b1ded4c45bb3e14209a96ff927fd0 Mon Sep 17 00:00:00 2001 From: dk1a Date: Mon, 12 May 2025 20:42:38 +0300 Subject: [PATCH 2/2] add e2e test for customWorld --- e2e/packages/contracts/mud.config.customworld.ts | 12 ++++++++++++ e2e/packages/contracts/mud.config.ts | 6 ++++-- e2e/packages/contracts/package.json | 2 +- e2e/packages/contracts/src/CustomWorld.sol | 6 ++++++ 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 e2e/packages/contracts/mud.config.customworld.ts create mode 100644 e2e/packages/contracts/src/CustomWorld.sol diff --git a/e2e/packages/contracts/mud.config.customworld.ts b/e2e/packages/contracts/mud.config.customworld.ts new file mode 100644 index 0000000000..55b1fb9316 --- /dev/null +++ b/e2e/packages/contracts/mud.config.customworld.ts @@ -0,0 +1,12 @@ +import { defineWorld } from "@latticexyz/world"; +import { rawMudConfig } from "./mud.config"; + +export default defineWorld({ + ...rawMudConfig, + deploy: { + customWorld: { + sourcePath: "src/CustomWorld.sol", + name: "CustomWorld", + }, + }, +}); diff --git a/e2e/packages/contracts/mud.config.ts b/e2e/packages/contracts/mud.config.ts index b4e07e2853..4e261905d0 100644 --- a/e2e/packages/contracts/mud.config.ts +++ b/e2e/packages/contracts/mud.config.ts @@ -1,6 +1,6 @@ import { defineWorld } from "@latticexyz/world"; -export default defineWorld({ +export const rawMudConfig = { tables: { Number: { schema: { @@ -65,4 +65,6 @@ export default defineWorld({ }, }, }, -}); +} as const; + +export default defineWorld(rawMudConfig); diff --git a/e2e/packages/contracts/package.json b/e2e/packages/contracts/package.json index eeaecd294c..6e4f58bf16 100644 --- a/e2e/packages/contracts/package.json +++ b/e2e/packages/contracts/package.json @@ -7,7 +7,7 @@ "build": "mud build", "clean": "forge clean && shx rm -rf src/**/codegen", "deploy:local": "mud deploy", - "test": "mud test", + "test": "mud test && mud test --skip-build --configPath=mud.config.customworld.ts", "test:ci": "pnpm run test" }, "devDependencies": { diff --git a/e2e/packages/contracts/src/CustomWorld.sol b/e2e/packages/contracts/src/CustomWorld.sol new file mode 100644 index 0000000000..96777bc13a --- /dev/null +++ b/e2e/packages/contracts/src/CustomWorld.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +import { World } from "@latticexyz/world/src/World.sol"; + +contract CustomWorld is World {}