diff --git a/.changeset/angry-pigs-compare.md b/.changeset/angry-pigs-compare.md new file mode 100644 index 0000000000..a37cebcbee --- /dev/null +++ b/.changeset/angry-pigs-compare.md @@ -0,0 +1,6 @@ +--- +"@latticexyz/store": patch +"@latticexyz/world": patch +--- + +Exclude ERC165 interface ID from custom interface ID's. diff --git a/docs/pages/store/reference/store-hook.mdx b/docs/pages/store/reference/store-hook.mdx index ba416e2627..e39061c978 100644 --- a/docs/pages/store/reference/store-hook.mdx +++ b/docs/pages/store/reference/store-hook.mdx @@ -14,8 +14,7 @@ bytes4 constant STORE_HOOK_INTERFACE_ID = IStoreHook.onBeforeSetRecord.selector IStoreHook.onBeforeSpliceDynamicData.selector ^ IStoreHook.onAfterSpliceDynamicData.selector ^ IStoreHook.onBeforeDeleteRecord.selector ^ - IStoreHook.onAfterDeleteRecord.selector ^ - ERC165_INTERFACE_ID; + IStoreHook.onAfterDeleteRecord.selector; ``` ## IStoreHook diff --git a/packages/store/src/IStoreHook.sol b/packages/store/src/IStoreHook.sol index 38f6245350..8974c80b11 100644 --- a/packages/store/src/IStoreHook.sol +++ b/packages/store/src/IStoreHook.sol @@ -2,7 +2,7 @@ pragma solidity >=0.8.21; import { FieldLayout } from "./FieldLayout.sol"; -import { IERC165, ERC165_INTERFACE_ID } from "./IERC165.sol"; +import { IERC165 } from "./IERC165.sol"; import { PackedCounter } from "./PackedCounter.sol"; import { ResourceId } from "./ResourceId.sol"; @@ -14,8 +14,7 @@ bytes4 constant STORE_HOOK_INTERFACE_ID = IStoreHook.onBeforeSetRecord.selector IStoreHook.onBeforeSpliceDynamicData.selector ^ IStoreHook.onAfterSpliceDynamicData.selector ^ IStoreHook.onBeforeDeleteRecord.selector ^ - IStoreHook.onAfterDeleteRecord.selector ^ - ERC165_INTERFACE_ID; + IStoreHook.onAfterDeleteRecord.selector; interface IStoreHook is IERC165 { /// @notice Error emitted when a function is not implemented. diff --git a/packages/world/src/IModule.sol b/packages/world/src/IModule.sol index 4a3dd5a264..14bb456fee 100644 --- a/packages/world/src/IModule.sol +++ b/packages/world/src/IModule.sol @@ -1,17 +1,15 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.21; -import { IERC165, ERC165_INTERFACE_ID } from "./IERC165.sol"; +import { IERC165 } from "./IERC165.sol"; /** * @dev Calculation for ERC-165 interface ID for the IModule functions. - * Combines the selector for each function with the ERC165_INTERFACE_ID. * See: https://eips.ethereum.org/EIPS/eip-165 */ bytes4 constant MODULE_INTERFACE_ID = IModule.getName.selector ^ IModule.installRoot.selector ^ - IModule.install.selector ^ - ERC165_INTERFACE_ID; + IModule.install.selector; /** * @title IModule diff --git a/packages/world/src/ISystemHook.sol b/packages/world/src/ISystemHook.sol index 0855df34f1..c09911904c 100644 --- a/packages/world/src/ISystemHook.sol +++ b/packages/world/src/ISystemHook.sol @@ -1,17 +1,15 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.21; -import { IERC165, ERC165_INTERFACE_ID } from "./IERC165.sol"; +import { IERC165 } from "./IERC165.sol"; import { ResourceId } from "./WorldResourceId.sol"; /** * @dev Calculation for ERC-165 interface ID for the ISystemHook functions. - * Combines the selector for each function with the ERC165_INTERFACE_ID. * See: https://eips.ethereum.org/EIPS/eip-165 */ bytes4 constant SYSTEM_HOOK_INTERFACE_ID = ISystemHook.onBeforeCallSystem.selector ^ - ISystemHook.onAfterCallSystem.selector ^ - ERC165_INTERFACE_ID; + ISystemHook.onAfterCallSystem.selector; /** * @title ISystemHook diff --git a/packages/world/src/IWorldContextConsumer.sol b/packages/world/src/IWorldContextConsumer.sol index ebf4076a34..04eb86ea78 100644 --- a/packages/world/src/IWorldContextConsumer.sol +++ b/packages/world/src/IWorldContextConsumer.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.21; -import { IERC165, ERC165_INTERFACE_ID } from "./IERC165.sol"; +import { IERC165 } from "./IERC165.sol"; /** * @dev World Context Consumer Interface @@ -12,8 +12,7 @@ import { IERC165, ERC165_INTERFACE_ID } from "./IERC165.sol"; bytes4 constant WORLD_CONTEXT_CONSUMER_INTERFACE_ID = IWorldContextConsumer._msgSender.selector ^ IWorldContextConsumer._msgValue.selector ^ - IWorldContextConsumer._world.selector ^ - ERC165_INTERFACE_ID; + IWorldContextConsumer._world.selector; /** * @title WorldContextConsumer - Extracting trusted context values from appended calldata.