@latticexyz/world-modules 2.0.0-main-711f6e2a → 2.0.0-march-19-skystrife-playtest-f0a343b1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/AccessControl.sol/AccessControl.json +1 -1
- package/out/AccessControlLib.sol/AccessControlLib.json +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json +0 -55
- package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json.d.ts +0 -55
- package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
- package/out/AddressArray.sol/AddressArray.json +1 -1
- package/out/Allowances.sol/Allowances.json +1 -1
- package/out/ArrayLib.sol/ArrayLib.json +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json +0 -16
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json.d.ts +0 -16
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
- package/out/Balances.sol/Balances.json +1 -1
- package/out/Base.sol/CommonBase.json +1 -1
- package/out/Base.sol/ScriptBase.json +1 -1
- package/out/Base.sol/TestBase.json +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.abi.json +0 -5
- package/out/BatchCallSystem.sol/BatchCallSystem.abi.json.d.ts +0 -5
- package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
- package/out/Bool.sol/Bool.json +1 -1
- package/out/Bytes.sol/Bytes.json +1 -1
- package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +1 -1
- package/out/CallboundDelegations.sol/CallboundDelegations.json +1 -1
- package/out/{InitModule.sol/InitModule.abi.json → CoreModule.sol/CoreModule.abi.json} +23 -149
- package/out/{InitModule.sol/InitModule.abi.json.d.ts → CoreModule.sol/CoreModule.abi.json.d.ts} +23 -149
- package/out/CoreModule.sol/CoreModule.json +1 -0
- package/out/{RegistrationSystem.sol/RegistrationSystem.abi.json → CoreSystem.sol/CoreSystem.abi.json} +157 -167
- package/out/{RegistrationSystem.sol/RegistrationSystem.abi.json.d.ts → CoreSystem.sol/CoreSystem.abi.json.d.ts} +157 -167
- package/out/CoreSystem.sol/CoreSystem.json +1 -0
- package/out/DecodeSlice.sol/DecodeSlice.json +1 -1
- package/out/Delegation.sol/Delegation.json +1 -1
- package/out/DelegationControl.sol/DelegationControl.json +1 -1
- package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
- package/out/ERC20.t.sol/ERC20Test.json +1 -1
- package/out/ERC20Metadata.sol/ERC20Metadata.json +1 -1
- package/out/ERC20Module.sol/ERC20Module.abi.json +24 -124
- package/out/ERC20Module.sol/ERC20Module.abi.json.d.ts +24 -124
- package/out/ERC20Module.sol/ERC20Module.json +1 -1
- package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.abi.json +8 -121
- package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.abi.json.d.ts +8 -121
- package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.json +1 -1
- package/out/ERC20Registry.sol/ERC20Registry.json +1 -1
- package/out/ERC20System.sol/ERC20System.json +1 -1
- package/out/ERC721.t.sol/ERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/ERC721Test.abi.json +1 -1
- package/out/ERC721.t.sol/ERC721Test.abi.json.d.ts +1 -1
- package/out/ERC721.t.sol/ERC721Test.json +1 -1
- package/out/ERC721.t.sol/ERC721TokenReceiver.json +1 -1
- package/out/ERC721.t.sol/NonERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/RevertingERC721Recipient.json +1 -1
- package/out/ERC721.t.sol/WrongReturnDataERC721Recipient.json +1 -1
- package/out/ERC721Metadata.sol/ERC721Metadata.json +1 -1
- package/out/ERC721Module.sol/ERC721Module.abi.json +24 -124
- package/out/ERC721Module.sol/ERC721Module.abi.json.d.ts +24 -124
- package/out/ERC721Module.sol/ERC721Module.json +1 -1
- package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.abi.json +8 -121
- package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.abi.json.d.ts +8 -121
- package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.json +1 -1
- package/out/ERC721Registry.sol/ERC721Registry.json +1 -1
- package/out/ERC721System.sol/ERC721System.json +1 -1
- package/out/EchoSubscriber.sol/EchoSubscriber.json +1 -1
- package/out/EncodeArray.sol/EncodeArray.json +1 -1
- package/out/FieldLayout.sol/FieldLayoutInstance.json +1 -1
- package/out/FieldLayout.sol/FieldLayoutLib.abi.json +23 -1
- package/out/FieldLayout.sol/FieldLayoutLib.abi.json.d.ts +23 -0
- package/out/FieldLayout.sol/FieldLayoutLib.json +1 -1
- package/out/FieldLayoutEncodeHelper.sol/FieldLayoutEncodeHelper.json +1 -1
- package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
- package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
- package/out/GasReporter.sol/GasReporter.json +1 -1
- package/out/Hook.sol/HookInstance.json +1 -1
- package/out/Hook.sol/HookLib.json +1 -1
- package/out/Hooks.sol/Hooks.json +1 -1
- package/out/IAccessManagementSystem.sol/IAccessManagementSystem.abi.json +0 -13
- package/out/IAccessManagementSystem.sol/IAccessManagementSystem.abi.json.d.ts +0 -13
- package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
- package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
- package/out/IBaseWorld.sol/IBaseWorld.abi.json +5 -230
- package/out/IBaseWorld.sol/IBaseWorld.abi.json.d.ts +5 -230
- package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
- package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
- package/out/ICoreSystem.sol/ICoreSystem.json +1 -0
- package/out/IDelegationControl.sol/IDelegationControl.json +1 -1
- package/out/IERC20.sol/IERC20.json +1 -1
- package/out/IERC20Errors.sol/IERC20Errors.json +1 -1
- package/out/IERC20Events.sol/IERC20Events.json +1 -1
- package/out/IERC20Mintable.sol/IERC20Mintable.json +1 -1
- package/out/IERC20System.sol/IERC20System.json +1 -1
- package/out/IERC721.sol/IERC721.json +1 -1
- package/out/IERC721Errors.sol/IERC721Errors.json +1 -1
- package/out/IERC721Events.sol/IERC721Events.json +1 -1
- package/out/IERC721Metadata.sol/IERC721Metadata.json +1 -1
- package/out/IERC721Mintable.sol/IERC721Mintable.json +1 -1
- package/out/IERC721Receiver.sol/IERC721Receiver.json +1 -1
- package/out/IModule.sol/IModule.abi.json +17 -4
- package/out/IModule.sol/IModule.abi.json.d.ts +17 -4
- package/out/IModule.sol/IModule.json +1 -1
- package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.abi.json +1 -1
- package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.abi.json.d.ts +1 -1
- package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
- package/out/IMulticall3.sol/IMulticall3.json +1 -1
- package/out/IPuppetFactorySystem.sol/IPuppetFactorySystem.json +1 -1
- package/out/IStore.sol/IStore.abi.json +3 -191
- package/out/IStore.sol/IStore.abi.json.d.ts +3 -191
- package/out/IStore.sol/IStore.json +1 -1
- package/out/IStoreData.sol/IStoreData.abi.json +0 -6
- package/out/IStoreData.sol/IStoreData.abi.json.d.ts +0 -6
- package/out/IStoreData.sol/IStoreData.json +1 -1
- package/out/IStoreErrors.sol/IStoreErrors.abi.json +3 -51
- package/out/IStoreErrors.sol/IStoreErrors.abi.json.d.ts +3 -51
- package/out/IStoreErrors.sol/IStoreErrors.json +1 -1
- package/out/IStoreEvents.sol/IStoreEvents.abi.json +0 -19
- package/out/IStoreEvents.sol/IStoreEvents.abi.json.d.ts +0 -19
- package/out/IStoreEvents.sol/IStoreEvents.json +1 -1
- package/out/IStoreHook.sol/IStoreHook.json +1 -1
- package/out/IStoreRead.sol/IStoreRead.json +1 -1
- package/out/IStoreRegistration.sol/IStoreRegistration.json +1 -1
- package/out/IStoreWrite.sol/IStoreWrite.abi.json +0 -19
- package/out/IStoreWrite.sol/IStoreWrite.abi.json.d.ts +0 -19
- package/out/IStoreWrite.sol/IStoreWrite.json +1 -1
- package/out/ISystemHook.sol/ISystemHook.json +1 -1
- package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.abi.json +15 -0
- package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.abi.json.d.ts +15 -0
- package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +1 -0
- package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +1 -1
- package/out/IWorldErrors.sol/IWorldErrors.abi.json +0 -11
- package/out/IWorldErrors.sol/IWorldErrors.abi.json.d.ts +0 -11
- package/out/IWorldErrors.sol/IWorldErrors.json +1 -1
- package/out/IWorldKernel.sol/IWorldCall.json +1 -1
- package/out/IWorldKernel.sol/IWorldKernel.abi.json +2 -39
- package/out/IWorldKernel.sol/IWorldKernel.abi.json.d.ts +2 -39
- package/out/IWorldKernel.sol/IWorldKernel.json +1 -1
- package/out/IWorldKernel.sol/IWorldModuleInstallation.abi.json +1 -1
- package/out/IWorldKernel.sol/IWorldModuleInstallation.abi.json.d.ts +1 -1
- package/out/IWorldKernel.sol/IWorldModuleInstallation.json +1 -1
- package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.abi.json +4 -30
- package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.abi.json.d.ts +4 -30
- package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
- package/out/InstalledModules.sol/InstalledModules.json +1 -1
- package/out/KeysInTable.sol/KeysInTable.json +1 -1
- package/out/KeysInTableHook.sol/KeysInTableHook.abi.json +0 -22
- package/out/KeysInTableHook.sol/KeysInTableHook.abi.json.d.ts +0 -22
- package/out/KeysInTableHook.sol/KeysInTableHook.json +1 -1
- package/out/KeysInTableModule.sol/KeysInTableModule.abi.json +32 -3
- package/out/KeysInTableModule.sol/KeysInTableModule.abi.json.d.ts +32 -3
- package/out/KeysInTableModule.sol/KeysInTableModule.json +1 -1
- package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.abi.json +8 -41
- package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.abi.json.d.ts +8 -41
- package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.json +1 -1
- package/out/KeysWithValue.sol/KeysWithValue.json +1 -1
- package/out/KeysWithValueHook.sol/KeysWithValueHook.abi.json +0 -6
- package/out/KeysWithValueHook.sol/KeysWithValueHook.abi.json.d.ts +0 -6
- package/out/KeysWithValueHook.sol/KeysWithValueHook.json +1 -1
- package/out/KeysWithValueModule.sol/KeysWithValueModule.abi.json +32 -3
- package/out/KeysWithValueModule.sol/KeysWithValueModule.abi.json.d.ts +32 -3
- package/out/KeysWithValueModule.sol/KeysWithValueModule.json +1 -1
- package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.abi.json +8 -41
- package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.abi.json.d.ts +8 -41
- package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.json +1 -1
- package/out/Memory.sol/Memory.json +1 -1
- package/out/Module.sol/Module.abi.json +17 -4
- package/out/Module.sol/Module.abi.json.d.ts +17 -4
- package/out/Module.sol/Module.json +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json +1 -6
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json.d.ts +1 -6
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
- package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
- package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
- package/out/OperatorApproval.sol/OperatorApproval.json +1 -1
- package/out/Owners.sol/Owners.json +1 -1
- package/out/PackedCounter.sol/PackedCounterInstance.abi.json +13 -1
- package/out/PackedCounter.sol/PackedCounterInstance.json +1 -1
- package/out/PackedCounter.sol/PackedCounterLib.json +1 -1
- package/out/Puppet.sol/Puppet.json +1 -1
- package/out/PuppetDelegationControl.sol/PuppetDelegationControl.json +1 -1
- package/out/PuppetFactorySystem.sol/PuppetFactorySystem.json +1 -1
- package/out/PuppetMaster.sol/PuppetMaster.json +1 -1
- package/out/PuppetModule.sol/PuppetModule.abi.json +23 -123
- package/out/PuppetModule.sol/PuppetModule.abi.json.d.ts +23 -123
- package/out/PuppetModule.sol/PuppetModule.json +1 -1
- package/out/PuppetModule.t.sol/PuppetModuleTest.abi.json +0 -14
- package/out/PuppetModule.t.sol/PuppetModuleTest.abi.json.d.ts +0 -14
- package/out/PuppetModule.t.sol/PuppetModuleTest.json +1 -1
- package/out/PuppetModule.t.sol/PuppetTestSystem.json +1 -1
- package/out/PuppetRegistry.sol/PuppetRegistry.json +1 -1
- package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
- package/out/ResourceId.sol/ResourceIdInstance.json +1 -1
- package/out/ResourceId.sol/ResourceIdLib.json +1 -1
- package/out/ResourceIds.sol/ResourceIds.json +1 -1
- package/out/RevertSubscriber.sol/RevertSubscriber.json +1 -1
- package/out/Schema.sol/SchemaInstance.json +1 -1
- package/out/Schema.sol/SchemaLib.abi.json +18 -1
- package/out/{ISchemaErrors.sol/ISchemaErrors.abi.json.d.ts → Schema.sol/SchemaLib.abi.json.d.ts} +2 -2
- package/out/Schema.sol/SchemaLib.json +1 -1
- package/out/SchemaEncodeHelper.sol/SchemaEncodeHelper.json +1 -1
- package/out/Slice.sol/SliceInstance.json +1 -1
- package/out/Slice.sol/SliceLib.abi.json +23 -1
- package/out/Slice.sol/SliceLib.json +1 -1
- package/out/StandardDelegationsModule.sol/StandardDelegationsModule.abi.json +23 -123
- package/out/StandardDelegationsModule.sol/StandardDelegationsModule.abi.json.d.ts +23 -123
- package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +1 -1
- package/out/StandardDelegationsModule.t.sol/StandardDelegationsModuleTest.json +1 -1
- package/out/StdAssertions.sol/StdAssertions.json +1 -1
- package/out/StdChains.sol/StdChains.json +1 -1
- package/out/StdCheats.sol/StdCheats.json +1 -1
- package/out/StdCheats.sol/StdCheatsSafe.json +1 -1
- package/out/StdError.sol/stdError.json +1 -1
- package/out/StdInvariant.sol/StdInvariant.json +1 -1
- package/out/StdJson.sol/stdJson.json +1 -1
- package/out/StdMath.sol/stdMath.json +1 -1
- package/out/StdStorage.sol/stdStorage.json +1 -1
- package/out/StdStorage.sol/stdStorageSafe.json +1 -1
- package/out/StdStyle.sol/StdStyle.json +1 -1
- package/out/StdUtils.sol/StdUtils.json +1 -1
- package/out/Storage.sol/Storage.json +1 -1
- package/out/StoreCore.sol/StoreCore.abi.json +132 -1
- package/out/StoreCore.sol/StoreCore.abi.json.d.ts +132 -0
- package/out/StoreCore.sol/StoreCore.json +1 -1
- package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
- package/out/StoreData.sol/StoreData.abi.json +0 -22
- package/out/StoreData.sol/StoreData.abi.json.d.ts +0 -22
- package/out/StoreData.sol/StoreData.json +1 -1
- package/out/StoreHook.sol/StoreHook.json +1 -1
- package/out/StoreHooks.sol/StoreHooks.json +1 -1
- package/out/StoreRead.sol/StoreRead.abi.json +0 -16
- package/out/StoreRead.sol/StoreRead.abi.json.d.ts +0 -16
- package/out/StoreRead.sol/StoreRead.json +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json +8 -159
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json.d.ts +8 -159
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
- package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
- package/out/System.sol/System.json +1 -1
- package/out/SystemCall.sol/SystemCall.json +1 -1
- package/out/SystemHook.sol/SystemHook.json +1 -1
- package/out/SystemHooks.sol/SystemHooks.json +1 -1
- package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
- package/out/SystemSwitch.sol/SystemSwitch.json +1 -1
- package/out/SystemSwitch.t.sol/EchoSystem.abi.json +1 -98
- package/out/SystemSwitch.t.sol/EchoSystem.abi.json.d.ts +1 -98
- package/out/SystemSwitch.t.sol/EchoSystem.json +1 -1
- package/out/SystemSwitch.t.sol/SystemSwitchTest.abi.json +15 -43
- package/out/SystemSwitch.t.sol/SystemSwitchTest.abi.json.d.ts +15 -43
- package/out/SystemSwitch.t.sol/SystemSwitchTest.json +1 -1
- package/out/SystemboundDelegationControl.sol/SystemboundDelegationControl.json +1 -1
- package/out/SystemboundDelegations.sol/SystemboundDelegations.json +1 -1
- package/out/Systems.sol/Systems.json +1 -1
- package/out/Tables.sol/Tables.json +1 -1
- package/out/Test.sol/Test.json +1 -1
- package/out/TightCoder.sol/TightCoder.json +1 -1
- package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +1 -1
- package/out/TimeboundDelegations.sol/TimeboundDelegations.json +1 -1
- package/out/TokenApproval.sol/TokenApproval.json +1 -1
- package/out/TokenURI.sol/TokenURI.json +1 -1
- package/out/TotalSupply.sol/TotalSupply.json +1 -1
- package/out/TwoFields.sol/TwoFields.json +1 -1
- package/out/UniqueEntity.sol/UniqueEntity.json +1 -1
- package/out/UniqueEntityModule.sol/UniqueEntityModule.abi.json +25 -125
- package/out/UniqueEntityModule.sol/UniqueEntityModule.abi.json.d.ts +25 -125
- package/out/UniqueEntityModule.sol/UniqueEntityModule.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityModuleTest.json +1 -1
- package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.abi.json +0 -68
- package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.abi.json.d.ts +0 -68
- package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.json +1 -1
- package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +1 -1
- package/out/UsedKeysIndex.sol/UsedKeysIndex.json +1 -1
- package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
- package/out/Vm.sol/Vm.json +1 -1
- package/out/Vm.sol/VmSafe.json +1 -1
- package/out/World.sol/World.abi.json +124 -53
- package/out/World.sol/World.abi.json.d.ts +124 -53
- package/out/World.sol/World.json +1 -1
- package/out/World.t.sol/EchoSystemHook.json +1 -1
- package/out/World.t.sol/IWorldTestSystem.abi.json +1 -1
- package/out/World.t.sol/IWorldTestSystem.abi.json.d.ts +1 -1
- package/out/World.t.sol/IWorldTestSystem.json +1 -1
- package/out/World.t.sol/PayableFallbackSystem.json +1 -1
- package/out/World.t.sol/RevertSystemHook.json +1 -1
- package/out/World.t.sol/WorldTest.abi.json +8 -76
- package/out/World.t.sol/WorldTest.abi.json.d.ts +8 -76
- package/out/World.t.sol/WorldTest.json +1 -1
- package/out/World.t.sol/WorldTestSystem.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
- package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json +4 -52
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json.d.ts +4 -52
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
- package/out/WorldResourceId.sol/WorldResourceIdInstance.json +1 -1
- package/out/WorldResourceId.sol/WorldResourceIdLib.json +1 -1
- package/out/console.sol/console.json +1 -1
- package/out/console2.sol/console2.json +1 -1
- package/out/constants.sol/LayoutOffsets.json +1 -1
- package/out/interfaces/IBaseWorld.sol/IBaseWorld.abi.json +10 -274
- package/out/interfaces/IBaseWorld.sol/IBaseWorld.abi.json.d.ts +10 -274
- package/out/interfaces/IBaseWorld.sol/IBaseWorld.json +1 -1
- package/out/query.t.sol/QueryTest.abi.json +8 -41
- package/out/query.t.sol/QueryTest.abi.json.d.ts +8 -41
- package/out/query.t.sol/QueryTest.json +1 -1
- package/out/safeconsole.sol/safeconsole.json +1 -1
- package/out/src/IERC165.sol/IERC165.json +1 -1
- package/out/tables/Balances.sol/Balances.json +1 -1
- package/out/test.sol/DSTest.json +1 -1
- package/out/world/src/IERC165.sol/IERC165.json +1 -1
- package/package.json +9 -9
- package/src/index.sol +6 -6
- package/src/interfaces/IBaseWorld.sol +4 -3
- package/src/interfaces/IERC20System.sol +1 -2
- package/src/interfaces/IPuppetFactorySystem.sol +1 -2
- package/src/interfaces/IUniqueEntitySystem.sol +7 -0
- package/src/modules/erc20-puppet/ERC20Module.sol +25 -16
- package/src/modules/erc20-puppet/ERC20System.sol +1 -1
- package/src/modules/erc20-puppet/IERC20.sol +1 -1
- package/src/modules/erc20-puppet/IERC20Errors.sol +1 -1
- package/src/modules/erc20-puppet/IERC20Events.sol +1 -1
- package/src/modules/erc20-puppet/IERC20Mintable.sol +1 -1
- package/src/modules/erc20-puppet/constants.sol +2 -1
- package/src/modules/erc20-puppet/registerERC20.sol +1 -1
- package/src/modules/erc20-puppet/tables/Allowances.sol +43 -12
- package/src/modules/erc20-puppet/tables/ERC20Metadata.sol +44 -13
- package/src/modules/erc20-puppet/tables/ERC20Registry.sol +42 -12
- package/src/modules/erc20-puppet/tables/TotalSupply.sol +41 -12
- package/src/modules/erc20-puppet/utils.sol +1 -1
- package/src/modules/erc721-puppet/ERC721Module.sol +25 -16
- package/src/modules/erc721-puppet/ERC721System.sol +1 -1
- package/src/modules/erc721-puppet/IERC721.sol +1 -1
- package/src/modules/erc721-puppet/IERC721Errors.sol +1 -1
- package/src/modules/erc721-puppet/IERC721Events.sol +1 -1
- package/src/modules/erc721-puppet/IERC721Metadata.sol +1 -2
- package/src/modules/erc721-puppet/IERC721Mintable.sol +1 -1
- package/src/modules/erc721-puppet/IERC721Receiver.sol +1 -2
- package/src/modules/erc721-puppet/constants.sol +2 -1
- package/src/modules/erc721-puppet/registerERC721.sol +1 -1
- package/src/modules/erc721-puppet/tables/ERC721Metadata.sol +43 -12
- package/src/modules/erc721-puppet/tables/ERC721Registry.sol +42 -12
- package/src/modules/erc721-puppet/tables/OperatorApproval.sol +43 -12
- package/src/modules/erc721-puppet/tables/Owners.sol +42 -12
- package/src/modules/erc721-puppet/tables/TokenApproval.sol +42 -12
- package/src/modules/erc721-puppet/tables/TokenURI.sol +42 -12
- package/src/modules/erc721-puppet/utils.sol +1 -1
- package/src/modules/keysintable/KeysInTableHook.sol +1 -1
- package/src/modules/keysintable/KeysInTableModule.sol +23 -17
- package/src/modules/keysintable/constants.sol +1 -1
- package/src/modules/keysintable/getKeysInTable.sol +1 -1
- package/src/modules/keysintable/hasKey.sol +1 -1
- package/src/modules/keysintable/query.sol +1 -1
- package/src/modules/keysintable/tables/KeysInTable.sol +51 -15
- package/src/modules/keysintable/tables/UsedKeysIndex.sol +51 -17
- package/src/modules/keyswithvalue/KeysWithValueHook.sol +1 -1
- package/src/modules/keyswithvalue/KeysWithValueModule.sol +17 -22
- package/src/modules/keyswithvalue/constants.sol +1 -1
- package/src/modules/keyswithvalue/getKeysWithValue.sol +1 -1
- package/src/modules/keyswithvalue/getTargetTableId.sol +1 -1
- package/src/modules/keyswithvalue/tables/KeysWithValue.sol +43 -13
- package/src/modules/puppet/Puppet.sol +1 -1
- package/src/modules/puppet/PuppetDelegationControl.sol +1 -1
- package/src/modules/puppet/PuppetFactorySystem.sol +1 -1
- package/src/modules/puppet/PuppetMaster.sol +1 -1
- package/src/modules/puppet/PuppetModule.sol +9 -24
- package/src/modules/puppet/constants.sol +3 -4
- package/src/modules/puppet/createPuppet.sol +1 -1
- package/src/modules/puppet/tables/PuppetRegistry.sol +42 -12
- package/src/modules/puppet/utils.sol +1 -1
- package/src/modules/std-delegations/CallboundDelegationControl.sol +1 -1
- package/src/modules/std-delegations/StandardDelegationsModule.sol +6 -2
- package/src/modules/std-delegations/SystemboundDelegationControl.sol +1 -1
- package/src/modules/std-delegations/TimeboundDelegationControl.sol +1 -1
- package/src/modules/std-delegations/constants.sol +3 -1
- package/src/modules/std-delegations/tables/CallboundDelegations.sol +49 -14
- package/src/modules/std-delegations/tables/SystemboundDelegations.sol +48 -14
- package/src/modules/std-delegations/tables/TimeboundDelegations.sol +47 -14
- package/src/modules/tokens/tables/Balances.sol +42 -12
- package/src/modules/uniqueentity/UniqueEntityModule.sol +15 -16
- package/src/modules/uniqueentity/UniqueEntitySystem.sol +1 -1
- package/src/modules/uniqueentity/constants.sol +3 -3
- package/src/modules/uniqueentity/getUniqueEntity.sol +3 -2
- package/src/modules/uniqueentity/tables/UniqueEntity.sol +42 -13
- package/src/modules/utils/ArrayLib.sol +2 -2
- package/src/utils/AccessControlLib.sol +1 -2
- package/src/utils/SystemSwitch.sol +10 -8
- package/dist/mud.config.d.ts +0 -256
- package/out/ERC165Checker.sol/ERC165Checker.json +0 -1
- package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.abi.json +0 -88
- package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.abi.json.d.ts +0 -88
- package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.json +0 -1
- package/out/IModuleErrors.sol/IModuleErrors.abi.json +0 -28
- package/out/IModuleErrors.sol/IModuleErrors.abi.json.d.ts +0 -28
- package/out/IModuleErrors.sol/IModuleErrors.json +0 -1
- package/out/IPackedCounterErrors.sol/IPackedCounterErrors.abi.json +0 -13
- package/out/IPackedCounterErrors.sol/IPackedCounterErrors.json +0 -1
- package/out/IRegistrationSystem.sol/IRegistrationSystem.abi.json +0 -1
- package/out/IRegistrationSystem.sol/IRegistrationSystem.json +0 -1
- package/out/ISchemaErrors.sol/ISchemaErrors.abi.json +0 -18
- package/out/ISchemaErrors.sol/ISchemaErrors.json +0 -1
- package/out/ISliceErrors.sol/ISliceErrors.abi.json +0 -23
- package/out/ISliceErrors.sol/ISliceErrors.json +0 -1
- package/out/IWorldEvents.sol/IWorldEvents.abi.json +0 -15
- package/out/IWorldEvents.sol/IWorldEvents.abi.json.d.ts +0 -15
- package/out/IWorldEvents.sol/IWorldEvents.json +0 -1
- package/out/InitModule.sol/InitModule.json +0 -1
- package/out/InitModuleAddress.sol/InitModuleAddress.abi.json +0 -1
- package/out/InitModuleAddress.sol/InitModuleAddress.json +0 -1
- package/out/LimitedCallContext.sol/LimitedCallContext.abi.json +0 -7
- package/out/LimitedCallContext.sol/LimitedCallContext.abi.json.d.ts +0 -7
- package/out/LimitedCallContext.sol/LimitedCallContext.json +0 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.json +0 -1
- /package/out/{ERC165Checker.sol/ERC165Checker.abi.json → ICoreSystem.sol/ICoreSystem.abi.json} +0 -0
- /package/out/{IPackedCounterErrors.sol/IPackedCounterErrors.abi.json.d.ts → PackedCounter.sol/PackedCounterInstance.abi.json.d.ts} +0 -0
- /package/out/{ISliceErrors.sol/ISliceErrors.abi.json.d.ts → Slice.sol/SliceLib.abi.json.d.ts} +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.
|
2
|
+
pragma solidity >=0.8.21;
|
3
3
|
|
4
4
|
import { BEFORE_SET_RECORD, AFTER_SPLICE_STATIC_DATA, AFTER_SPLICE_DYNAMIC_DATA, BEFORE_DELETE_RECORD } from "@latticexyz/store/src/storeHookTypes.sol";
|
5
5
|
import { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
|
@@ -13,8 +13,8 @@ import { ResourceId, WorldResourceIdInstance } from "@latticexyz/world/src/World
|
|
13
13
|
import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
|
14
14
|
|
15
15
|
import { KeysInTableHook } from "./KeysInTableHook.sol";
|
16
|
-
import { KeysInTable } from "./tables/KeysInTable.sol";
|
17
|
-
import { UsedKeysIndex } from "./tables/UsedKeysIndex.sol";
|
16
|
+
import { KeysInTable, KeysInTableTableId } from "./tables/KeysInTable.sol";
|
17
|
+
import { UsedKeysIndex, UsedKeysIndexTableId } from "./tables/UsedKeysIndex.sol";
|
18
18
|
|
19
19
|
/**
|
20
20
|
* This module deploys a hook that is called when a value is set in the `sourceTableId`
|
@@ -33,13 +33,19 @@ contract KeysInTableModule is Module {
|
|
33
33
|
// from the source table id (passed as argument to the hook methods)
|
34
34
|
KeysInTableHook private immutable hook = new KeysInTableHook();
|
35
35
|
|
36
|
-
function
|
36
|
+
function getName() public pure returns (bytes16) {
|
37
|
+
return bytes16("keysInTable");
|
38
|
+
}
|
39
|
+
|
40
|
+
function installRoot(bytes memory args) public override {
|
37
41
|
// Naive check to ensure this is only installed once
|
38
42
|
// TODO: only revert if there's nothing to do
|
39
|
-
|
43
|
+
if (InstalledModules.getModuleAddress(getName(), keccak256(args)) != address(0)) {
|
44
|
+
revert Module_AlreadyInstalled();
|
45
|
+
}
|
40
46
|
|
41
47
|
// Extract source table id from args
|
42
|
-
ResourceId sourceTableId = ResourceId.wrap(abi.decode(
|
48
|
+
ResourceId sourceTableId = ResourceId.wrap(abi.decode(args, (bytes32)));
|
43
49
|
|
44
50
|
IBaseWorld world = IBaseWorld(_world());
|
45
51
|
|
@@ -47,16 +53,16 @@ contract KeysInTableModule is Module {
|
|
47
53
|
bool success;
|
48
54
|
bytes memory returnData;
|
49
55
|
|
50
|
-
if (!ResourceIds._getExists(
|
56
|
+
if (!ResourceIds._getExists(KeysInTableTableId)) {
|
51
57
|
// Register the tables
|
52
58
|
(success, returnData) = address(world).delegatecall(
|
53
59
|
abi.encodeCall(
|
54
60
|
world.registerTable,
|
55
61
|
(
|
56
|
-
|
57
|
-
KeysInTable.
|
58
|
-
KeysInTable.
|
59
|
-
KeysInTable.
|
62
|
+
KeysInTableTableId,
|
63
|
+
KeysInTable.getFieldLayout(),
|
64
|
+
KeysInTable.getKeySchema(),
|
65
|
+
KeysInTable.getValueSchema(),
|
60
66
|
KeysInTable.getKeyNames(),
|
61
67
|
KeysInTable.getFieldNames()
|
62
68
|
)
|
@@ -68,10 +74,10 @@ contract KeysInTableModule is Module {
|
|
68
74
|
abi.encodeCall(
|
69
75
|
world.registerTable,
|
70
76
|
(
|
71
|
-
|
72
|
-
UsedKeysIndex.
|
73
|
-
UsedKeysIndex.
|
74
|
-
UsedKeysIndex.
|
77
|
+
UsedKeysIndexTableId,
|
78
|
+
UsedKeysIndex.getFieldLayout(),
|
79
|
+
UsedKeysIndex.getKeySchema(),
|
80
|
+
UsedKeysIndex.getValueSchema(),
|
75
81
|
UsedKeysIndex.getKeyNames(),
|
76
82
|
UsedKeysIndex.getFieldNames()
|
77
83
|
)
|
@@ -81,12 +87,12 @@ contract KeysInTableModule is Module {
|
|
81
87
|
|
82
88
|
// Grant the hook access to the tables
|
83
89
|
(success, returnData) = address(world).delegatecall(
|
84
|
-
abi.encodeCall(world.grantAccess, (
|
90
|
+
abi.encodeCall(world.grantAccess, (KeysInTableTableId, address(hook)))
|
85
91
|
);
|
86
92
|
if (!success) revertWithBytes(returnData);
|
87
93
|
|
88
94
|
(success, returnData) = address(world).delegatecall(
|
89
|
-
abi.encodeCall(world.grantAccess, (
|
95
|
+
abi.encodeCall(world.grantAccess, (UsedKeysIndexTableId, address(hook)))
|
90
96
|
);
|
91
97
|
if (!success) revertWithBytes(returnData);
|
92
98
|
}
|
@@ -1,8 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.
|
2
|
+
pragma solidity >=0.8.21;
|
3
3
|
|
4
4
|
/* Autogenerated file. Do not edit manually. */
|
5
5
|
|
6
|
+
// Import schema type
|
7
|
+
import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
|
8
|
+
|
6
9
|
// Import store internals
|
7
10
|
import { IStore } from "@latticexyz/store/src/IStore.sol";
|
8
11
|
import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
|
@@ -11,14 +14,24 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
|
|
11
14
|
import { Memory } from "@latticexyz/store/src/Memory.sol";
|
12
15
|
import { SliceLib } from "@latticexyz/store/src/Slice.sol";
|
13
16
|
import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
|
14
|
-
import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
|
15
|
-
import { Schema } from "@latticexyz/store/src/Schema.sol";
|
17
|
+
import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
|
18
|
+
import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
|
16
19
|
import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
|
17
20
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
21
|
+
import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
|
18
22
|
|
19
23
|
// Import user types
|
20
24
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
21
25
|
|
26
|
+
ResourceId constant _tableId = ResourceId.wrap(
|
27
|
+
bytes32(abi.encodePacked(RESOURCE_TABLE, bytes14(""), bytes16("KeysInTable")))
|
28
|
+
);
|
29
|
+
ResourceId constant KeysInTableTableId = _tableId;
|
30
|
+
|
31
|
+
FieldLayout constant _fieldLayout = FieldLayout.wrap(
|
32
|
+
0x0000000500000000000000000000000000000000000000000000000000000000
|
33
|
+
);
|
34
|
+
|
22
35
|
struct KeysInTableData {
|
23
36
|
bytes32[] keys0;
|
24
37
|
bytes32[] keys1;
|
@@ -28,16 +41,39 @@ struct KeysInTableData {
|
|
28
41
|
}
|
29
42
|
|
30
43
|
library KeysInTable {
|
31
|
-
|
32
|
-
|
44
|
+
/**
|
45
|
+
* @notice Get the table values' field layout.
|
46
|
+
* @return _fieldLayout The field layout for the table.
|
47
|
+
*/
|
48
|
+
function getFieldLayout() internal pure returns (FieldLayout) {
|
49
|
+
return _fieldLayout;
|
50
|
+
}
|
51
|
+
|
52
|
+
/**
|
53
|
+
* @notice Get the table's key schema.
|
54
|
+
* @return _keySchema The key schema for the table.
|
55
|
+
*/
|
56
|
+
function getKeySchema() internal pure returns (Schema) {
|
57
|
+
SchemaType[] memory _keySchema = new SchemaType[](1);
|
58
|
+
_keySchema[0] = SchemaType.BYTES32;
|
33
59
|
|
34
|
-
|
35
|
-
|
60
|
+
return SchemaLib.encode(_keySchema);
|
61
|
+
}
|
36
62
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
63
|
+
/**
|
64
|
+
* @notice Get the table's value schema.
|
65
|
+
* @return _valueSchema The value schema for the table.
|
66
|
+
*/
|
67
|
+
function getValueSchema() internal pure returns (Schema) {
|
68
|
+
SchemaType[] memory _valueSchema = new SchemaType[](5);
|
69
|
+
_valueSchema[0] = SchemaType.BYTES32_ARRAY;
|
70
|
+
_valueSchema[1] = SchemaType.BYTES32_ARRAY;
|
71
|
+
_valueSchema[2] = SchemaType.BYTES32_ARRAY;
|
72
|
+
_valueSchema[3] = SchemaType.BYTES32_ARRAY;
|
73
|
+
_valueSchema[4] = SchemaType.BYTES32_ARRAY;
|
74
|
+
|
75
|
+
return SchemaLib.encode(_valueSchema);
|
76
|
+
}
|
41
77
|
|
42
78
|
/**
|
43
79
|
* @notice Get the table's key field names.
|
@@ -65,21 +101,21 @@ library KeysInTable {
|
|
65
101
|
* @notice Register the table with its config.
|
66
102
|
*/
|
67
103
|
function register() internal {
|
68
|
-
StoreSwitch.registerTable(_tableId, _fieldLayout,
|
104
|
+
StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
69
105
|
}
|
70
106
|
|
71
107
|
/**
|
72
108
|
* @notice Register the table with its config.
|
73
109
|
*/
|
74
110
|
function _register() internal {
|
75
|
-
StoreCore.registerTable(_tableId, _fieldLayout,
|
111
|
+
StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
76
112
|
}
|
77
113
|
|
78
114
|
/**
|
79
115
|
* @notice Register the table with its config (using the specified store).
|
80
116
|
*/
|
81
117
|
function register(IStore _store) internal {
|
82
|
-
_store.registerTable(_tableId, _fieldLayout,
|
118
|
+
_store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
83
119
|
}
|
84
120
|
|
85
121
|
/**
|
@@ -1592,7 +1628,7 @@ library KeysInTable {
|
|
1592
1628
|
* @notice Encode all of a record's fields.
|
1593
1629
|
* @return The static (fixed length) data, encoded into a sequence of bytes.
|
1594
1630
|
* @return The lengths of the dynamic fields (packed into a single bytes32 value).
|
1595
|
-
* @return The
|
1631
|
+
* @return The dyanmic (variable length) data, encoded into a sequence of bytes.
|
1596
1632
|
*/
|
1597
1633
|
function encode(
|
1598
1634
|
bytes32[] memory keys0,
|
@@ -1,8 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.
|
2
|
+
pragma solidity >=0.8.21;
|
3
3
|
|
4
4
|
/* Autogenerated file. Do not edit manually. */
|
5
5
|
|
6
|
+
// Import schema type
|
7
|
+
import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
|
8
|
+
|
6
9
|
// Import store internals
|
7
10
|
import { IStore } from "@latticexyz/store/src/IStore.sol";
|
8
11
|
import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
|
@@ -11,25 +14,56 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
|
|
11
14
|
import { Memory } from "@latticexyz/store/src/Memory.sol";
|
12
15
|
import { SliceLib } from "@latticexyz/store/src/Slice.sol";
|
13
16
|
import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
|
14
|
-
import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
|
15
|
-
import { Schema } from "@latticexyz/store/src/Schema.sol";
|
17
|
+
import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
|
18
|
+
import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
|
16
19
|
import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
|
17
20
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
21
|
+
import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
|
18
22
|
|
19
23
|
// Import user types
|
20
24
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
21
25
|
|
26
|
+
ResourceId constant _tableId = ResourceId.wrap(
|
27
|
+
bytes32(abi.encodePacked(RESOURCE_TABLE, bytes14(""), bytes16("UsedKeysIndex")))
|
28
|
+
);
|
29
|
+
ResourceId constant UsedKeysIndexTableId = _tableId;
|
30
|
+
|
31
|
+
FieldLayout constant _fieldLayout = FieldLayout.wrap(
|
32
|
+
0x0006020001050000000000000000000000000000000000000000000000000000
|
33
|
+
);
|
34
|
+
|
22
35
|
library UsedKeysIndex {
|
23
|
-
|
24
|
-
|
36
|
+
/**
|
37
|
+
* @notice Get the table values' field layout.
|
38
|
+
* @return _fieldLayout The field layout for the table.
|
39
|
+
*/
|
40
|
+
function getFieldLayout() internal pure returns (FieldLayout) {
|
41
|
+
return _fieldLayout;
|
42
|
+
}
|
43
|
+
|
44
|
+
/**
|
45
|
+
* @notice Get the table's key schema.
|
46
|
+
* @return _keySchema The key schema for the table.
|
47
|
+
*/
|
48
|
+
function getKeySchema() internal pure returns (Schema) {
|
49
|
+
SchemaType[] memory _keySchema = new SchemaType[](2);
|
50
|
+
_keySchema[0] = SchemaType.BYTES32;
|
51
|
+
_keySchema[1] = SchemaType.BYTES32;
|
25
52
|
|
26
|
-
|
27
|
-
|
53
|
+
return SchemaLib.encode(_keySchema);
|
54
|
+
}
|
28
55
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
56
|
+
/**
|
57
|
+
* @notice Get the table's value schema.
|
58
|
+
* @return _valueSchema The value schema for the table.
|
59
|
+
*/
|
60
|
+
function getValueSchema() internal pure returns (Schema) {
|
61
|
+
SchemaType[] memory _valueSchema = new SchemaType[](2);
|
62
|
+
_valueSchema[0] = SchemaType.BOOL;
|
63
|
+
_valueSchema[1] = SchemaType.UINT40;
|
64
|
+
|
65
|
+
return SchemaLib.encode(_valueSchema);
|
66
|
+
}
|
33
67
|
|
34
68
|
/**
|
35
69
|
* @notice Get the table's key field names.
|
@@ -55,21 +89,21 @@ library UsedKeysIndex {
|
|
55
89
|
* @notice Register the table with its config.
|
56
90
|
*/
|
57
91
|
function register() internal {
|
58
|
-
StoreSwitch.registerTable(_tableId, _fieldLayout,
|
92
|
+
StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
59
93
|
}
|
60
94
|
|
61
95
|
/**
|
62
96
|
* @notice Register the table with its config.
|
63
97
|
*/
|
64
98
|
function _register() internal {
|
65
|
-
StoreCore.registerTable(_tableId, _fieldLayout,
|
99
|
+
StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
66
100
|
}
|
67
101
|
|
68
102
|
/**
|
69
103
|
* @notice Register the table with its config (using the specified store).
|
70
104
|
*/
|
71
105
|
function register(IStore _store) internal {
|
72
|
-
_store.registerTable(_tableId, _fieldLayout,
|
106
|
+
_store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
73
107
|
}
|
74
108
|
|
75
109
|
/**
|
@@ -314,9 +348,9 @@ library UsedKeysIndex {
|
|
314
348
|
* @notice Decode the tightly packed blob of static data using this table's field layout.
|
315
349
|
*/
|
316
350
|
function decodeStatic(bytes memory _blob) internal pure returns (bool has, uint40 index) {
|
317
|
-
has = (_toBool(uint8(Bytes.
|
351
|
+
has = (_toBool(uint8(Bytes.slice1(_blob, 0))));
|
318
352
|
|
319
|
-
index = (uint40(Bytes.
|
353
|
+
index = (uint40(Bytes.slice5(_blob, 1)));
|
320
354
|
}
|
321
355
|
|
322
356
|
/**
|
@@ -378,7 +412,7 @@ library UsedKeysIndex {
|
|
378
412
|
* @notice Encode all of a record's fields.
|
379
413
|
* @return The static (fixed length) data, encoded into a sequence of bytes.
|
380
414
|
* @return The lengths of the dynamic fields (packed into a single bytes32 value).
|
381
|
-
* @return The
|
415
|
+
* @return The dyanmic (variable length) data, encoded into a sequence of bytes.
|
382
416
|
*/
|
383
417
|
function encode(bool has, uint40 index) internal pure returns (bytes memory, PackedCounter, bytes memory) {
|
384
418
|
bytes memory _staticData = encodeStatic(has, index);
|
@@ -1,10 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.
|
2
|
+
pragma solidity >=0.8.21;
|
3
3
|
import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
|
4
4
|
import { BEFORE_SET_RECORD, BEFORE_SPLICE_STATIC_DATA, AFTER_SPLICE_STATIC_DATA, BEFORE_SPLICE_DYNAMIC_DATA, AFTER_SPLICE_DYNAMIC_DATA, BEFORE_DELETE_RECORD } from "@latticexyz/store/src/storeHookTypes.sol";
|
5
|
-
import { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
|
6
|
-
|
7
5
|
import { Module } from "@latticexyz/world/src/Module.sol";
|
6
|
+
|
8
7
|
import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
|
9
8
|
import { InstalledModules } from "@latticexyz/world/src/codegen/index.sol";
|
10
9
|
|
@@ -35,45 +34,41 @@ contract KeysWithValueModule is Module {
|
|
35
34
|
// from the source table id (passed as argument to the hook methods)
|
36
35
|
KeysWithValueHook private immutable hook = new KeysWithValueHook();
|
37
36
|
|
38
|
-
function
|
37
|
+
function getName() public pure returns (bytes16) {
|
38
|
+
return bytes16("index");
|
39
|
+
}
|
40
|
+
|
41
|
+
function installRoot(bytes memory args) public {
|
39
42
|
// Naive check to ensure this is only installed once
|
40
43
|
// TODO: only revert if there's nothing to do
|
41
|
-
|
44
|
+
if (InstalledModules.getModuleAddress(getName(), keccak256(args)) != address(0)) {
|
45
|
+
revert Module_AlreadyInstalled();
|
46
|
+
}
|
42
47
|
|
43
48
|
// Extract source table id from args
|
44
|
-
ResourceId sourceTableId = ResourceId.wrap(abi.decode(
|
45
|
-
ResourceId
|
49
|
+
ResourceId sourceTableId = ResourceId.wrap(abi.decode(args, (bytes32)));
|
50
|
+
ResourceId targetTableSelector = getTargetTableId(MODULE_NAMESPACE, sourceTableId);
|
46
51
|
|
47
52
|
IBaseWorld world = IBaseWorld(_world());
|
48
53
|
|
49
|
-
// Register the target namespace if it doesn't exist yet
|
50
|
-
if (!ResourceIds.getExists(targetTableId.getNamespaceId())) {
|
51
|
-
(bool registrationSuccess, bytes memory registrationReturnData) = address(world).delegatecall(
|
52
|
-
abi.encodeCall(world.registerNamespace, (targetTableId.getNamespaceId()))
|
53
|
-
);
|
54
|
-
if (!registrationSuccess) revertWithBytes(registrationReturnData);
|
55
|
-
}
|
56
|
-
|
57
54
|
// Register the target table
|
58
55
|
(bool success, bytes memory returnData) = address(world).delegatecall(
|
59
56
|
abi.encodeCall(
|
60
57
|
world.registerTable,
|
61
58
|
(
|
62
|
-
|
63
|
-
KeysWithValue.
|
64
|
-
KeysWithValue.
|
65
|
-
KeysWithValue.
|
59
|
+
targetTableSelector,
|
60
|
+
KeysWithValue.getFieldLayout(),
|
61
|
+
KeysWithValue.getKeySchema(),
|
62
|
+
KeysWithValue.getValueSchema(),
|
66
63
|
KeysWithValue.getKeyNames(),
|
67
64
|
KeysWithValue.getFieldNames()
|
68
65
|
)
|
69
66
|
)
|
70
67
|
);
|
71
68
|
|
72
|
-
if (!success) revertWithBytes(returnData);
|
73
|
-
|
74
69
|
// Grant the hook access to the target table
|
75
70
|
(success, returnData) = address(world).delegatecall(
|
76
|
-
abi.encodeCall(world.grantAccess, (
|
71
|
+
abi.encodeCall(world.grantAccess, (targetTableSelector, address(hook)))
|
77
72
|
);
|
78
73
|
|
79
74
|
if (!success) revertWithBytes(returnData);
|
@@ -1,8 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
2
|
-
pragma solidity >=0.8.
|
2
|
+
pragma solidity >=0.8.21;
|
3
3
|
|
4
4
|
/* Autogenerated file. Do not edit manually. */
|
5
5
|
|
6
|
+
// Import schema type
|
7
|
+
import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
|
8
|
+
|
6
9
|
// Import store internals
|
7
10
|
import { IStore } from "@latticexyz/store/src/IStore.sol";
|
8
11
|
import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
|
@@ -11,19 +14,46 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
|
|
11
14
|
import { Memory } from "@latticexyz/store/src/Memory.sol";
|
12
15
|
import { SliceLib } from "@latticexyz/store/src/Slice.sol";
|
13
16
|
import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
|
14
|
-
import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
|
15
|
-
import { Schema } from "@latticexyz/store/src/Schema.sol";
|
17
|
+
import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
|
18
|
+
import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
|
16
19
|
import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
|
17
20
|
import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
|
21
|
+
import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
|
22
|
+
|
23
|
+
FieldLayout constant _fieldLayout = FieldLayout.wrap(
|
24
|
+
0x0000000100000000000000000000000000000000000000000000000000000000
|
25
|
+
);
|
18
26
|
|
19
27
|
library KeysWithValue {
|
20
|
-
|
21
|
-
|
28
|
+
/**
|
29
|
+
* @notice Get the table values' field layout.
|
30
|
+
* @return _fieldLayout The field layout for the table.
|
31
|
+
*/
|
32
|
+
function getFieldLayout() internal pure returns (FieldLayout) {
|
33
|
+
return _fieldLayout;
|
34
|
+
}
|
35
|
+
|
36
|
+
/**
|
37
|
+
* @notice Get the table's key schema.
|
38
|
+
* @return _keySchema The key schema for the table.
|
39
|
+
*/
|
40
|
+
function getKeySchema() internal pure returns (Schema) {
|
41
|
+
SchemaType[] memory _keySchema = new SchemaType[](1);
|
42
|
+
_keySchema[0] = SchemaType.BYTES32;
|
43
|
+
|
44
|
+
return SchemaLib.encode(_keySchema);
|
45
|
+
}
|
22
46
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
47
|
+
/**
|
48
|
+
* @notice Get the table's value schema.
|
49
|
+
* @return _valueSchema The value schema for the table.
|
50
|
+
*/
|
51
|
+
function getValueSchema() internal pure returns (Schema) {
|
52
|
+
SchemaType[] memory _valueSchema = new SchemaType[](1);
|
53
|
+
_valueSchema[0] = SchemaType.BYTES32_ARRAY;
|
54
|
+
|
55
|
+
return SchemaLib.encode(_valueSchema);
|
56
|
+
}
|
27
57
|
|
28
58
|
/**
|
29
59
|
* @notice Get the table's key field names.
|
@@ -47,21 +77,21 @@ library KeysWithValue {
|
|
47
77
|
* @notice Register the table with its config.
|
48
78
|
*/
|
49
79
|
function register(ResourceId _tableId) internal {
|
50
|
-
StoreSwitch.registerTable(_tableId, _fieldLayout,
|
80
|
+
StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
51
81
|
}
|
52
82
|
|
53
83
|
/**
|
54
84
|
* @notice Register the table with its config.
|
55
85
|
*/
|
56
86
|
function _register(ResourceId _tableId) internal {
|
57
|
-
StoreCore.registerTable(_tableId, _fieldLayout,
|
87
|
+
StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
58
88
|
}
|
59
89
|
|
60
90
|
/**
|
61
91
|
* @notice Register the table with its config (using the specified store).
|
62
92
|
*/
|
63
93
|
function register(IStore _store, ResourceId _tableId) internal {
|
64
|
-
_store.registerTable(_tableId, _fieldLayout,
|
94
|
+
_store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
|
65
95
|
}
|
66
96
|
|
67
97
|
/**
|
@@ -646,7 +676,7 @@ library KeysWithValue {
|
|
646
676
|
* @notice Encode all of a record's fields.
|
647
677
|
* @return The static (fixed length) data, encoded into a sequence of bytes.
|
648
678
|
* @return The lengths of the dynamic fields (packed into a single bytes32 value).
|
649
|
-
* @return The
|
679
|
+
* @return The dyanmic (variable length) data, encoded into a sequence of bytes.
|
650
680
|
*/
|
651
681
|
function encode(bytes32[] memory keysWithValue) internal pure returns (bytes memory, PackedCounter, bytes memory) {
|
652
682
|
bytes memory _staticData;
|