From a25881160cb3283e11d218be7b8a9fe38ee83062 Mon Sep 17 00:00:00 2001 From: dk1a Date: Fri, 11 Aug 2023 22:29:40 +0300 Subject: [PATCH] refactor(store): remove TableId library (#1279) --- .changeset/four-coats-pull.md | 5 +++++ .../store/abi/TableId.sol/TableId.abi.json | 1 - packages/store/src/StoreCore.sol | 9 +++----- packages/store/src/TableId.sol | 8 ------- packages/store/test/StoreCore.t.sol | 5 ++--- packages/store/test/StoreCoreGas.t.sol | 1 - .../world/abi/TableId.sol/TableId.abi.json | 1 - packages/world/gas-report.json | 22 +++++++++---------- 8 files changed, 21 insertions(+), 31 deletions(-) create mode 100644 .changeset/four-coats-pull.md delete mode 100644 packages/store/abi/TableId.sol/TableId.abi.json delete mode 100644 packages/store/src/TableId.sol delete mode 100644 packages/world/abi/TableId.sol/TableId.abi.json diff --git a/.changeset/four-coats-pull.md b/.changeset/four-coats-pull.md new file mode 100644 index 0000000000..51578c77f9 --- /dev/null +++ b/.changeset/four-coats-pull.md @@ -0,0 +1,5 @@ +--- +"@latticexyz/store": major +--- + +Remove `TableId` library to simplify `store` package diff --git a/packages/store/abi/TableId.sol/TableId.abi.json b/packages/store/abi/TableId.sol/TableId.abi.json deleted file mode 100644 index 0637a088a0..0000000000 --- a/packages/store/abi/TableId.sol/TableId.abi.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/packages/store/src/StoreCore.sol b/packages/store/src/StoreCore.sol index 8798bd85cf..6f8ec8a26e 100644 --- a/packages/store/src/StoreCore.sol +++ b/packages/store/src/StoreCore.sol @@ -11,12 +11,9 @@ import { Slice, SliceLib } from "./Slice.sol"; import { StoreMetadata, Hooks, HooksTableId } from "./codegen/Tables.sol"; import { IStoreErrors } from "./IStoreErrors.sol"; import { IStoreHook } from "./IStore.sol"; -import { TableId } from "./TableId.sol"; import { StoreSwitch } from "./StoreSwitch.sol"; library StoreCore { - using TableId for bytes32; - // note: the preimage of the tuple of keys used to index is part of the event, so it can be used by indexers event StoreSetRecord(bytes32 table, bytes32[] key, bytes data); event StoreSetField(bytes32 table, bytes32[] key, uint8 schemaIndex, bytes data); @@ -77,7 +74,7 @@ library StoreCore { function getSchema(bytes32 tableId) internal view returns (Schema schema) { schema = StoreCoreInternal._getSchema(tableId); if (schema.isEmpty()) { - revert IStoreErrors.StoreCore_TableNotFound(tableId, tableId.toString()); + revert IStoreErrors.StoreCore_TableNotFound(tableId, string(abi.encodePacked(tableId))); } } @@ -88,7 +85,7 @@ library StoreCore { keySchema = StoreCoreInternal._getKeySchema(tableId); // key schemas can be empty for singleton tables, so we can't depend on key schema for table check if (!hasTable(tableId)) { - revert IStoreErrors.StoreCore_TableNotFound(tableId, tableId.toString()); + revert IStoreErrors.StoreCore_TableNotFound(tableId, string(abi.encodePacked(tableId))); } } @@ -109,7 +106,7 @@ library StoreCore { // Verify the schema doesn't exist yet if (hasTable(tableId)) { - revert IStoreErrors.StoreCore_TableAlreadyExists(tableId, tableId.toString()); + revert IStoreErrors.StoreCore_TableAlreadyExists(tableId, string(abi.encodePacked(tableId))); } // Register the schema diff --git a/packages/store/src/TableId.sol b/packages/store/src/TableId.sol deleted file mode 100644 index 3ae991d8bc..0000000000 --- a/packages/store/src/TableId.sol +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.8.0; - -library TableId { - function toString(bytes32 tableId) internal pure returns (string memory) { - return string(abi.encodePacked(tableId)); - } -} diff --git a/packages/store/test/StoreCore.t.sol b/packages/store/test/StoreCore.t.sol index a3a70a4acb..6f7e740abb 100644 --- a/packages/store/test/StoreCore.t.sol +++ b/packages/store/test/StoreCore.t.sol @@ -5,7 +5,6 @@ import "forge-std/Test.sol"; import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol"; import { StoreCore, StoreCoreInternal } from "../src/StoreCore.sol"; import { Bytes } from "../src/Bytes.sol"; -import { TableId } from "../src/TableId.sol"; import { SliceLib } from "../src/Slice.sol"; import { EncodeArray } from "../src/tightcoder/EncodeArray.sol"; import { Schema } from "../src/Schema.sol"; @@ -77,12 +76,12 @@ contract StoreCoreTest is Test, StoreMock { IStore(this).getKeySchema(table); vm.expectRevert( - abi.encodeWithSelector(IStoreErrors.StoreCore_TableNotFound.selector, table2, TableId.toString(table2)) + abi.encodeWithSelector(IStoreErrors.StoreCore_TableNotFound.selector, table2, string(abi.encodePacked(table2))) ); IStore(this).getSchema(table2); vm.expectRevert( - abi.encodeWithSelector(IStoreErrors.StoreCore_TableNotFound.selector, table2, TableId.toString(table2)) + abi.encodeWithSelector(IStoreErrors.StoreCore_TableNotFound.selector, table2, string(abi.encodePacked(table2))) ); IStore(this).getKeySchema(table2); } diff --git a/packages/store/test/StoreCoreGas.t.sol b/packages/store/test/StoreCoreGas.t.sol index 3f800707b3..db7d180be0 100644 --- a/packages/store/test/StoreCoreGas.t.sol +++ b/packages/store/test/StoreCoreGas.t.sol @@ -13,7 +13,6 @@ import { PackedCounter, PackedCounterLib } from "../src/PackedCounter.sol"; import { StoreReadWithStubs } from "../src/StoreReadWithStubs.sol"; import { IStoreErrors } from "../src/IStoreErrors.sol"; import { IStore } from "../src/IStore.sol"; -import { StoreSwitch } from "../src/StoreSwitch.sol"; import { StoreMetadataData, StoreMetadata } from "../src/codegen/Tables.sol"; import { SchemaEncodeHelper } from "./SchemaEncodeHelper.sol"; import { StoreMock } from "./StoreMock.sol"; diff --git a/packages/world/abi/TableId.sol/TableId.abi.json b/packages/world/abi/TableId.sol/TableId.abi.json deleted file mode 100644 index 0637a088a0..0000000000 --- a/packages/world/abi/TableId.sol/TableId.abi.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/packages/world/gas-report.json b/packages/world/gas-report.json index f478a84bf6..a9bbbee3bc 100644 --- a/packages/world/gas-report.json +++ b/packages/world/gas-report.json @@ -3,13 +3,13 @@ "file": "test/KeysInTableModule.t.sol", "test": "testInstallComposite", "name": "install keys in table module", - "gasUsed": 1245509 + "gasUsed": 1245428 }, { "file": "test/KeysInTableModule.t.sol", "test": "testInstallGas", "name": "install keys in table module", - "gasUsed": 1245509 + "gasUsed": 1245428 }, { "file": "test/KeysInTableModule.t.sol", @@ -21,13 +21,13 @@ "file": "test/KeysInTableModule.t.sol", "test": "testInstallSingleton", "name": "install keys in table module", - "gasUsed": 1245509 + "gasUsed": 1245428 }, { "file": "test/KeysInTableModule.t.sol", "test": "testSetAndDeleteRecordHookCompositeGas", "name": "install keys in table module", - "gasUsed": 1245509 + "gasUsed": 1245428 }, { "file": "test/KeysInTableModule.t.sol", @@ -45,7 +45,7 @@ "file": "test/KeysInTableModule.t.sol", "test": "testSetAndDeleteRecordHookGas", "name": "install keys in table module", - "gasUsed": 1245509 + "gasUsed": 1245428 }, { "file": "test/KeysInTableModule.t.sol", @@ -63,7 +63,7 @@ "file": "test/KeysWithValueModule.t.sol", "test": "testGetKeysWithValueGas", "name": "install keys with value module", - "gasUsed": 600153 + "gasUsed": 600072 }, { "file": "test/KeysWithValueModule.t.sol", @@ -81,7 +81,7 @@ "file": "test/KeysWithValueModule.t.sol", "test": "testInstall", "name": "install keys with value module", - "gasUsed": 600153 + "gasUsed": 600072 }, { "file": "test/KeysWithValueModule.t.sol", @@ -93,7 +93,7 @@ "file": "test/KeysWithValueModule.t.sol", "test": "testSetAndDeleteRecordHook", "name": "install keys with value module", - "gasUsed": 600153 + "gasUsed": 600072 }, { "file": "test/KeysWithValueModule.t.sol", @@ -111,7 +111,7 @@ "file": "test/KeysWithValueModule.t.sol", "test": "testSetField", "name": "install keys with value module", - "gasUsed": 600153 + "gasUsed": 600072 }, { "file": "test/KeysWithValueModule.t.sol", @@ -207,7 +207,7 @@ "file": "test/UniqueEntityModule.t.sol", "test": "testInstall", "name": "install unique entity module", - "gasUsed": 787858 + "gasUsed": 787777 }, { "file": "test/UniqueEntityModule.t.sol", @@ -219,7 +219,7 @@ "file": "test/UniqueEntityModule.t.sol", "test": "testInstallRoot", "name": "installRoot unique entity module", - "gasUsed": 760163 + "gasUsed": 760082 }, { "file": "test/UniqueEntityModule.t.sol",