@latticexyz/world 2.0.0-alpha.1.21 → 2.0.0-alpha.1.22

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.
Files changed (133) hide show
  1. package/abi/AccessControl.sol/AccessControl.json +241 -241
  2. package/abi/AccessManagementSystem.sol/AccessManagementSystem.json +157 -157
  3. package/abi/AddressArray.sol/AddressArray.json +1124 -1124
  4. package/abi/ArrayLib.sol/ArrayLib.json +139 -139
  5. package/abi/Bool.sol/Bool.json +704 -704
  6. package/abi/Bytes.sol/Bytes.json +6 -6
  7. package/abi/Call.sol/Call.json +112 -112
  8. package/abi/Callbacks.sol/Callbacks.json +1100 -1100
  9. package/abi/CoreModule.sol/CoreModule.json +542 -542
  10. package/abi/CoreSystem.sol/CoreSystem.json +92 -92
  11. package/abi/DecodeSlice.sol/DecodeSlice.json +3891 -3891
  12. package/abi/EncodeArray.sol/EncodeArray.json +3344 -3344
  13. package/abi/FunctionSelectors.sol/FunctionSelectors.json +1678 -1678
  14. package/abi/Hooks.sol/Hooks.json +1100 -1100
  15. package/abi/IAccessManagementSystem.sol/IAccessManagementSystem.json +32 -32
  16. package/abi/IBaseWorld.sol/IBaseWorld.json +224 -99
  17. package/abi/ICoreSystem.sol/ICoreSystem.json +6 -6
  18. package/abi/IModule.sol/IModule.json +28 -28
  19. package/abi/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +40 -40
  20. package/abi/IStore.sol/IStore.json +551 -349
  21. package/abi/IStore.sol/IStoreData.json +551 -349
  22. package/abi/IStore.sol/IStoreHook.json +495 -349
  23. package/abi/IStore.sol/IStoreRead.json +495 -349
  24. package/abi/IStore.sol/IStoreRegistration.json +495 -349
  25. package/abi/IStore.sol/IStoreWrite.json +551 -349
  26. package/abi/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.json +80 -80
  27. package/abi/ISystemHook.sol/ISystemHook.json +19 -19
  28. package/abi/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +13 -13
  29. package/abi/IWorldKernel.sol/IWorldCall.json +455 -276
  30. package/abi/IWorldKernel.sol/IWorldData.json +524 -276
  31. package/abi/IWorldKernel.sol/IWorldKernel.json +524 -276
  32. package/abi/IWorldKernel.sol/IWorldModuleInstallation.json +455 -276
  33. package/abi/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +198 -198
  34. package/abi/InstalledModules.sol/InstalledModules.json +1351 -1351
  35. package/abi/KeysWithValue.sol/KeysWithValue.json +1124 -1124
  36. package/abi/KeysWithValueHook.sol/KeysWithValueHook.json +416 -416
  37. package/abi/KeysWithValueModule.sol/KeysWithValueModule.json +293 -293
  38. package/abi/Memory.sol/Memory.json +131 -131
  39. package/abi/Mixed.sol/Mixed.json +2781 -2781
  40. package/abi/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +138 -138
  41. package/abi/NamespaceOwner.sol/NamespaceOwner.json +782 -782
  42. package/abi/PackedCounter.sol/PackedCounterLib.json +665 -665
  43. package/abi/ResourceAccess.sol/ResourceAccess.json +926 -926
  44. package/abi/ResourceSelector.sol/ResourceSelector.json +253 -253
  45. package/abi/ResourceType.sol/ResourceType.json +831 -831
  46. package/abi/Schema.sol/SchemaLib.json +1469 -1469
  47. package/abi/SchemaType.sol/SchemaType.json +315 -315
  48. package/abi/Slice.sol/SliceInstance.json +429 -429
  49. package/abi/Slice.sol/SliceLib.json +429 -429
  50. package/abi/Storage.sol/Storage.json +1024 -1061
  51. package/abi/StoreCore.sol/StoreCore.json +10434 -7652
  52. package/abi/StoreCore.sol/StoreCoreExtended.json +10434 -7652
  53. package/abi/StoreCore.sol/StoreCoreInternal.json +10434 -7652
  54. package/abi/StoreMetadata.sol/StoreMetadata.json +2116 -2116
  55. package/abi/StoreRead.sol/StoreRead.json +247 -247
  56. package/abi/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +339 -339
  57. package/abi/StoreSwitch.sol/StoreSwitch.json +1814 -1359
  58. package/abi/System.sol/System.json +31 -31
  59. package/abi/SystemRegistry.sol/SystemRegistry.json +794 -794
  60. package/abi/Systems.sol/Systems.json +1412 -1412
  61. package/abi/TableId.sol/TableId.json +27 -27
  62. package/abi/Tables.sol/Tables.json +92 -92
  63. package/abi/TightCoder.sol/TightCoder.json +275 -275
  64. package/abi/Types.sol/Types.json +8 -8
  65. package/abi/UniqueEntity.sol/UniqueEntity.json +683 -683
  66. package/abi/UniqueEntityModule.sol/UniqueEntityModule.json +232 -232
  67. package/abi/UniqueEntitySystem.sol/UniqueEntitySystem.json +114 -114
  68. package/abi/Utils.sol/Utils.json +67 -67
  69. package/abi/Vector2.sol/Vector2.json +1473 -1473
  70. package/abi/World.sol/World.json +2426 -1491
  71. package/abi/WorldContext.sol/WorldContext.json +65 -65
  72. package/abi/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1140 -1140
  73. package/abi/console.sol/console.json +11417 -11417
  74. package/abi/constants.sol/constants.json +34 -34
  75. package/abi/getKeysWithValue.sol/getKeysWithValue.json +129 -129
  76. package/abi/getTargetTableSelector.sol/getTargetTableSelector.json +75 -75
  77. package/abi/getUniqueEntity.sol/getUniqueEntity.json +88 -88
  78. package/abi/interfaces/IErrors.sol/IErrors.json +57 -57
  79. package/abi/src/Bytes.sol/Bytes.json +1225 -1225
  80. package/abi/src/IStore.sol/IStore.json +727 -525
  81. package/abi/src/IStore.sol/IStoreData.json +727 -525
  82. package/abi/src/IStore.sol/IStoreHook.json +671 -525
  83. package/abi/src/IStore.sol/IStoreRead.json +671 -525
  84. package/abi/src/IStore.sol/IStoreRegistration.json +671 -525
  85. package/abi/src/IStore.sol/IStoreWrite.json +727 -525
  86. package/abi/src/Memory.sol/Memory.json +131 -131
  87. package/abi/src/PackedCounter.sol/PackedCounterLib.json +683 -683
  88. package/abi/src/Schema.sol/SchemaLib.json +1493 -1493
  89. package/abi/src/Slice.sol/SliceInstance.json +429 -429
  90. package/abi/src/Slice.sol/SliceLib.json +429 -429
  91. package/abi/src/StoreCore.sol/StoreCore.json +12500 -9718
  92. package/abi/src/StoreCore.sol/StoreCoreExtended.json +12500 -9718
  93. package/abi/src/StoreCore.sol/StoreCoreInternal.json +12500 -9718
  94. package/abi/src/StoreSwitch.sol/StoreSwitch.json +1822 -1367
  95. package/abi/tightcoder/EncodeArray.sol/EncodeArray.json +3344 -3344
  96. package/package.json +6 -6
  97. package/src/World.sol +32 -0
  98. package/src/interfaces/IWorldKernel.sol +12 -0
  99. package/types/ethers-contracts/IBaseWorld.ts +116 -0
  100. package/types/ethers-contracts/IStore.sol/IStore.ts +55 -0
  101. package/types/ethers-contracts/IStore.sol/IStoreData.ts +55 -0
  102. package/types/ethers-contracts/IStore.sol/IStoreWrite.ts +55 -0
  103. package/types/ethers-contracts/IWorldKernel.sol/IWorldData.ts +61 -0
  104. package/types/ethers-contracts/IWorldKernel.sol/IWorldKernel.ts +61 -0
  105. package/types/ethers-contracts/World.ts +116 -0
  106. package/types/ethers-contracts/factories/AccessManagementSystem__factory.ts +1 -1
  107. package/types/ethers-contracts/factories/CoreModule__factory.ts +1 -1
  108. package/types/ethers-contracts/factories/CoreSystem__factory.ts +1 -1
  109. package/types/ethers-contracts/factories/IBaseWorld__factory.ts +61 -0
  110. package/types/ethers-contracts/factories/IStore.sol/IStoreData__factory.ts +28 -0
  111. package/types/ethers-contracts/factories/IStore.sol/IStoreWrite__factory.ts +28 -0
  112. package/types/ethers-contracts/factories/IStore.sol/IStore__factory.ts +28 -0
  113. package/types/ethers-contracts/factories/IWorldKernel.sol/IWorldData__factory.ts +33 -0
  114. package/types/ethers-contracts/factories/IWorldKernel.sol/IWorldKernel__factory.ts +33 -0
  115. package/types/ethers-contracts/factories/KeysWithValueHook__factory.ts +1 -1
  116. package/types/ethers-contracts/factories/KeysWithValueModule__factory.ts +1 -1
  117. package/types/ethers-contracts/factories/ModuleInstallationSystem__factory.ts +1 -1
  118. package/types/ethers-contracts/factories/StoreCore__factory.ts +1 -1
  119. package/types/ethers-contracts/factories/StoreRead__factory.ts +1 -1
  120. package/types/ethers-contracts/factories/StoreRegistrationSystem__factory.ts +1 -1
  121. package/types/ethers-contracts/factories/StoreSwitch__factory.ts +1 -1
  122. package/types/ethers-contracts/factories/UniqueEntityModule__factory.ts +1 -1
  123. package/types/ethers-contracts/factories/UniqueEntitySystem__factory.ts +1 -1
  124. package/types/ethers-contracts/factories/WorldRegistrationSystem__factory.ts +1 -1
  125. package/types/ethers-contracts/factories/World__factory.ts +62 -1
  126. package/types/ethers-contracts/factories/src/IStore.sol/IStoreData__factory.ts +28 -0
  127. package/types/ethers-contracts/factories/src/IStore.sol/IStoreWrite__factory.ts +28 -0
  128. package/types/ethers-contracts/factories/src/IStore.sol/IStore__factory.ts +28 -0
  129. package/types/ethers-contracts/factories/src/StoreCore__factory.ts +1 -1
  130. package/types/ethers-contracts/factories/src/StoreSwitch__factory.ts +1 -1
  131. package/types/ethers-contracts/src/IStore.sol/IStore.ts +55 -0
  132. package/types/ethers-contracts/src/IStore.sol/IStoreData.ts +55 -0
  133. package/types/ethers-contracts/src/IStore.sol/IStoreWrite.ts +55 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/world",
3
- "version": "2.0.0-alpha.1.21+4ad66187",
3
+ "version": "2.0.0-alpha.1.22+2f59f2a8",
4
4
  "description": "World framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -39,10 +39,10 @@
39
39
  "devDependencies": {
40
40
  "@ethersproject/abi": "^5.7.0",
41
41
  "@ethersproject/providers": "^5.7.2",
42
- "@latticexyz/common": "2.0.0-alpha.1.21+4ad66187",
43
- "@latticexyz/config": "2.0.0-alpha.1.21+4ad66187",
44
- "@latticexyz/schema-type": "2.0.0-alpha.1.21+4ad66187",
45
- "@latticexyz/store": "2.0.0-alpha.1.21+4ad66187",
42
+ "@latticexyz/common": "2.0.0-alpha.1.22+2f59f2a8",
43
+ "@latticexyz/config": "2.0.0-alpha.1.22+2f59f2a8",
44
+ "@latticexyz/schema-type": "2.0.0-alpha.1.22+2f59f2a8",
45
+ "@latticexyz/store": "2.0.0-alpha.1.22+2f59f2a8",
46
46
  "@typechain/ethers-v5": "^10.2.0",
47
47
  "@types/ejs": "^3.1.1",
48
48
  "@types/glob": "^7.2.0",
@@ -75,5 +75,5 @@
75
75
  "ethers": "^5.7.2",
76
76
  "forge-std": "https://github.com/foundry-rs/forge-std.git#b4f121555729b3afb3c5ffccb62ff4b6e2818fd3"
77
77
  },
78
- "gitHead": "4ad661878bcf916a9ab7fd4d72d051b372af74c5"
78
+ "gitHead": "2f59f2a8c127fef3154e28d672f53ec96939a912"
79
79
  }
package/src/World.sol CHANGED
@@ -108,6 +108,24 @@ contract World is StoreRead, IStoreData, IWorldKernel {
108
108
  StoreCore.pushToField(resourceSelector, key, schemaIndex, dataToPush);
109
109
  }
110
110
 
111
+ /**
112
+ * Pop data from the end of a field in the table at the given namespace and name.
113
+ * Requires the caller to have access to the namespace or name.
114
+ */
115
+ function popFromField(
116
+ bytes16 namespace,
117
+ bytes16 name,
118
+ bytes32[] calldata key,
119
+ uint8 schemaIndex,
120
+ uint256 byteLengthToPop
121
+ ) public virtual {
122
+ // Require access to namespace or name
123
+ bytes32 resourceSelector = AccessControl.requireAccess(namespace, name, msg.sender);
124
+
125
+ // Push to the field
126
+ StoreCore.popFromField(resourceSelector, key, schemaIndex, byteLengthToPop);
127
+ }
128
+
111
129
  /**
112
130
  * Update data at `startByteIndex` of a field in the table at the given namespace and name.
113
131
  * Requires the caller to have access to the namespace or name.
@@ -182,6 +200,20 @@ contract World is StoreRead, IStoreData, IWorldKernel {
182
200
  pushToField(tableId.getNamespace(), tableId.getName(), key, schemaIndex, dataToPush);
183
201
  }
184
202
 
203
+ /**
204
+ * Pop data from the end of a field in the table at the given tableId.
205
+ * This overload exists to conform with the `IStore` interface.
206
+ * Access is checked based on the namespace or name (encoded in the tableId).
207
+ */
208
+ function popFromField(
209
+ bytes32 tableId,
210
+ bytes32[] calldata key,
211
+ uint8 schemaIndex,
212
+ uint256 byteLengthToPop
213
+ ) public override {
214
+ popFromField(tableId.getNamespace(), tableId.getName(), key, schemaIndex, byteLengthToPop);
215
+ }
216
+
185
217
  /**
186
218
  * Update data at `startByteIndex` of a field in the table at the given tableId.
187
219
  * This overload exists to conform with the `IStore` interface.
@@ -40,6 +40,18 @@ interface IWorldData {
40
40
  bytes calldata dataToPush
41
41
  ) external;
42
42
 
43
+ /**
44
+ * Pop data from the end of a field in the table at the given namespace and name.
45
+ * Requires the caller to have access to the namespace or name.
46
+ */
47
+ function popFromField(
48
+ bytes16 namespace,
49
+ bytes16 name,
50
+ bytes32[] calldata key,
51
+ uint8 schemaIndex,
52
+ uint256 byteLengthToPop
53
+ ) external;
54
+
43
55
  /**
44
56
  * Update data at `startByteIndex` of a field in the table at the given namespace and name.
45
57
  * Requires the caller to have access to the namespace or name.
@@ -42,6 +42,8 @@ export interface IBaseWorldInterface extends utils.Interface {
42
42
  "installModule(address,bytes)": FunctionFragment;
43
43
  "installRootModule(address,bytes)": FunctionFragment;
44
44
  "isStore()": FunctionFragment;
45
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)": FunctionFragment;
46
+ "popFromField(bytes32,bytes32[],uint8,uint256)": FunctionFragment;
45
47
  "pushToField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
46
48
  "pushToField(bytes16,bytes16,bytes32[],uint8,bytes)": FunctionFragment;
47
49
  "registerFunctionSelector(bytes16,bytes16,string,string)": FunctionFragment;
@@ -79,6 +81,8 @@ export interface IBaseWorldInterface extends utils.Interface {
79
81
  | "installModule"
80
82
  | "installRootModule"
81
83
  | "isStore"
84
+ | "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"
85
+ | "popFromField(bytes32,bytes32[],uint8,uint256)"
82
86
  | "pushToField(bytes32,bytes32[],uint8,bytes)"
83
87
  | "pushToField(bytes16,bytes16,bytes32[],uint8,bytes)"
84
88
  | "registerFunctionSelector"
@@ -167,6 +171,25 @@ export interface IBaseWorldInterface extends utils.Interface {
167
171
  values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]
168
172
  ): string;
169
173
  encodeFunctionData(functionFragment: "isStore", values?: undefined): string;
174
+ encodeFunctionData(
175
+ functionFragment: "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)",
176
+ values: [
177
+ PromiseOrValue<BytesLike>,
178
+ PromiseOrValue<BytesLike>,
179
+ PromiseOrValue<BytesLike>[],
180
+ PromiseOrValue<BigNumberish>,
181
+ PromiseOrValue<BigNumberish>
182
+ ]
183
+ ): string;
184
+ encodeFunctionData(
185
+ functionFragment: "popFromField(bytes32,bytes32[],uint8,uint256)",
186
+ values: [
187
+ PromiseOrValue<BytesLike>,
188
+ PromiseOrValue<BytesLike>[],
189
+ PromiseOrValue<BigNumberish>,
190
+ PromiseOrValue<BigNumberish>
191
+ ]
192
+ ): string;
170
193
  encodeFunctionData(
171
194
  functionFragment: "pushToField(bytes32,bytes32[],uint8,bytes)",
172
195
  values: [
@@ -381,6 +404,14 @@ export interface IBaseWorldInterface extends utils.Interface {
381
404
  data: BytesLike
382
405
  ): Result;
383
406
  decodeFunctionResult(functionFragment: "isStore", data: BytesLike): Result;
407
+ decodeFunctionResult(
408
+ functionFragment: "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)",
409
+ data: BytesLike
410
+ ): Result;
411
+ decodeFunctionResult(
412
+ functionFragment: "popFromField(bytes32,bytes32[],uint8,uint256)",
413
+ data: BytesLike
414
+ ): Result;
384
415
  decodeFunctionResult(
385
416
  functionFragment: "pushToField(bytes32,bytes32[],uint8,bytes)",
386
417
  data: BytesLike
@@ -612,6 +643,23 @@ export interface IBaseWorld extends BaseContract {
612
643
 
613
644
  isStore(overrides?: CallOverrides): Promise<[void]>;
614
645
 
646
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"(
647
+ namespace: PromiseOrValue<BytesLike>,
648
+ name: PromiseOrValue<BytesLike>,
649
+ key: PromiseOrValue<BytesLike>[],
650
+ schemaIndex: PromiseOrValue<BigNumberish>,
651
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
652
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
653
+ ): Promise<ContractTransaction>;
654
+
655
+ "popFromField(bytes32,bytes32[],uint8,uint256)"(
656
+ table: PromiseOrValue<BytesLike>,
657
+ key: PromiseOrValue<BytesLike>[],
658
+ schemaIndex: PromiseOrValue<BigNumberish>,
659
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
660
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
661
+ ): Promise<ContractTransaction>;
662
+
615
663
  "pushToField(bytes32,bytes32[],uint8,bytes)"(
616
664
  table: PromiseOrValue<BytesLike>,
617
665
  key: PromiseOrValue<BytesLike>[],
@@ -845,6 +893,23 @@ export interface IBaseWorld extends BaseContract {
845
893
 
846
894
  isStore(overrides?: CallOverrides): Promise<void>;
847
895
 
896
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"(
897
+ namespace: PromiseOrValue<BytesLike>,
898
+ name: PromiseOrValue<BytesLike>,
899
+ key: PromiseOrValue<BytesLike>[],
900
+ schemaIndex: PromiseOrValue<BigNumberish>,
901
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
902
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
903
+ ): Promise<ContractTransaction>;
904
+
905
+ "popFromField(bytes32,bytes32[],uint8,uint256)"(
906
+ table: PromiseOrValue<BytesLike>,
907
+ key: PromiseOrValue<BytesLike>[],
908
+ schemaIndex: PromiseOrValue<BigNumberish>,
909
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
910
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
911
+ ): Promise<ContractTransaction>;
912
+
848
913
  "pushToField(bytes32,bytes32[],uint8,bytes)"(
849
914
  table: PromiseOrValue<BytesLike>,
850
915
  key: PromiseOrValue<BytesLike>[],
@@ -1078,6 +1143,23 @@ export interface IBaseWorld extends BaseContract {
1078
1143
 
1079
1144
  isStore(overrides?: CallOverrides): Promise<void>;
1080
1145
 
1146
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"(
1147
+ namespace: PromiseOrValue<BytesLike>,
1148
+ name: PromiseOrValue<BytesLike>,
1149
+ key: PromiseOrValue<BytesLike>[],
1150
+ schemaIndex: PromiseOrValue<BigNumberish>,
1151
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1152
+ overrides?: CallOverrides
1153
+ ): Promise<void>;
1154
+
1155
+ "popFromField(bytes32,bytes32[],uint8,uint256)"(
1156
+ table: PromiseOrValue<BytesLike>,
1157
+ key: PromiseOrValue<BytesLike>[],
1158
+ schemaIndex: PromiseOrValue<BigNumberish>,
1159
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1160
+ overrides?: CallOverrides
1161
+ ): Promise<void>;
1162
+
1081
1163
  "pushToField(bytes32,bytes32[],uint8,bytes)"(
1082
1164
  table: PromiseOrValue<BytesLike>,
1083
1165
  key: PromiseOrValue<BytesLike>[],
@@ -1344,6 +1426,23 @@ export interface IBaseWorld extends BaseContract {
1344
1426
 
1345
1427
  isStore(overrides?: CallOverrides): Promise<BigNumber>;
1346
1428
 
1429
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"(
1430
+ namespace: PromiseOrValue<BytesLike>,
1431
+ name: PromiseOrValue<BytesLike>,
1432
+ key: PromiseOrValue<BytesLike>[],
1433
+ schemaIndex: PromiseOrValue<BigNumberish>,
1434
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1435
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1436
+ ): Promise<BigNumber>;
1437
+
1438
+ "popFromField(bytes32,bytes32[],uint8,uint256)"(
1439
+ table: PromiseOrValue<BytesLike>,
1440
+ key: PromiseOrValue<BytesLike>[],
1441
+ schemaIndex: PromiseOrValue<BigNumberish>,
1442
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1443
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1444
+ ): Promise<BigNumber>;
1445
+
1347
1446
  "pushToField(bytes32,bytes32[],uint8,bytes)"(
1348
1447
  table: PromiseOrValue<BytesLike>,
1349
1448
  key: PromiseOrValue<BytesLike>[],
@@ -1578,6 +1677,23 @@ export interface IBaseWorld extends BaseContract {
1578
1677
 
1579
1678
  isStore(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1580
1679
 
1680
+ "popFromField(bytes16,bytes16,bytes32[],uint8,uint256)"(
1681
+ namespace: PromiseOrValue<BytesLike>,
1682
+ name: PromiseOrValue<BytesLike>,
1683
+ key: PromiseOrValue<BytesLike>[],
1684
+ schemaIndex: PromiseOrValue<BigNumberish>,
1685
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1686
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1687
+ ): Promise<PopulatedTransaction>;
1688
+
1689
+ "popFromField(bytes32,bytes32[],uint8,uint256)"(
1690
+ table: PromiseOrValue<BytesLike>,
1691
+ key: PromiseOrValue<BytesLike>[],
1692
+ schemaIndex: PromiseOrValue<BigNumberish>,
1693
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
1694
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1695
+ ): Promise<PopulatedTransaction>;
1696
+
1581
1697
  "pushToField(bytes32,bytes32[],uint8,bytes)"(
1582
1698
  table: PromiseOrValue<BytesLike>,
1583
1699
  key: PromiseOrValue<BytesLike>[],
@@ -36,6 +36,7 @@ export interface IStoreInterface extends utils.Interface {
36
36
  "getRecord(bytes32,bytes32[])": FunctionFragment;
37
37
  "getSchema(bytes32)": FunctionFragment;
38
38
  "isStore()": FunctionFragment;
39
+ "popFromField(bytes32,bytes32[],uint8,uint256)": FunctionFragment;
39
40
  "pushToField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
40
41
  "registerSchema(bytes32,bytes32,bytes32)": FunctionFragment;
41
42
  "registerStoreHook(bytes32,address)": FunctionFragment;
@@ -54,6 +55,7 @@ export interface IStoreInterface extends utils.Interface {
54
55
  | "getRecord(bytes32,bytes32[])"
55
56
  | "getSchema"
56
57
  | "isStore"
58
+ | "popFromField"
57
59
  | "pushToField"
58
60
  | "registerSchema"
59
61
  | "registerStoreHook"
@@ -96,6 +98,15 @@ export interface IStoreInterface extends utils.Interface {
96
98
  values: [PromiseOrValue<BytesLike>]
97
99
  ): string;
98
100
  encodeFunctionData(functionFragment: "isStore", values?: undefined): string;
101
+ encodeFunctionData(
102
+ functionFragment: "popFromField",
103
+ values: [
104
+ PromiseOrValue<BytesLike>,
105
+ PromiseOrValue<BytesLike>[],
106
+ PromiseOrValue<BigNumberish>,
107
+ PromiseOrValue<BigNumberish>
108
+ ]
109
+ ): string;
99
110
  encodeFunctionData(
100
111
  functionFragment: "pushToField",
101
112
  values: [
@@ -172,6 +183,10 @@ export interface IStoreInterface extends utils.Interface {
172
183
  ): Result;
173
184
  decodeFunctionResult(functionFragment: "getSchema", data: BytesLike): Result;
174
185
  decodeFunctionResult(functionFragment: "isStore", data: BytesLike): Result;
186
+ decodeFunctionResult(
187
+ functionFragment: "popFromField",
188
+ data: BytesLike
189
+ ): Result;
175
190
  decodeFunctionResult(
176
191
  functionFragment: "pushToField",
177
192
  data: BytesLike
@@ -308,6 +323,14 @@ export interface IStore extends BaseContract {
308
323
 
309
324
  isStore(overrides?: CallOverrides): Promise<[void]>;
310
325
 
326
+ popFromField(
327
+ table: PromiseOrValue<BytesLike>,
328
+ key: PromiseOrValue<BytesLike>[],
329
+ schemaIndex: PromiseOrValue<BigNumberish>,
330
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
331
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
332
+ ): Promise<ContractTransaction>;
333
+
311
334
  pushToField(
312
335
  table: PromiseOrValue<BytesLike>,
313
336
  key: PromiseOrValue<BytesLike>[],
@@ -399,6 +422,14 @@ export interface IStore extends BaseContract {
399
422
 
400
423
  isStore(overrides?: CallOverrides): Promise<void>;
401
424
 
425
+ popFromField(
426
+ table: PromiseOrValue<BytesLike>,
427
+ key: PromiseOrValue<BytesLike>[],
428
+ schemaIndex: PromiseOrValue<BigNumberish>,
429
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
430
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
431
+ ): Promise<ContractTransaction>;
432
+
402
433
  pushToField(
403
434
  table: PromiseOrValue<BytesLike>,
404
435
  key: PromiseOrValue<BytesLike>[],
@@ -490,6 +521,14 @@ export interface IStore extends BaseContract {
490
521
 
491
522
  isStore(overrides?: CallOverrides): Promise<void>;
492
523
 
524
+ popFromField(
525
+ table: PromiseOrValue<BytesLike>,
526
+ key: PromiseOrValue<BytesLike>[],
527
+ schemaIndex: PromiseOrValue<BigNumberish>,
528
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
529
+ overrides?: CallOverrides
530
+ ): Promise<void>;
531
+
493
532
  pushToField(
494
533
  table: PromiseOrValue<BytesLike>,
495
534
  key: PromiseOrValue<BytesLike>[],
@@ -614,6 +653,14 @@ export interface IStore extends BaseContract {
614
653
 
615
654
  isStore(overrides?: CallOverrides): Promise<BigNumber>;
616
655
 
656
+ popFromField(
657
+ table: PromiseOrValue<BytesLike>,
658
+ key: PromiseOrValue<BytesLike>[],
659
+ schemaIndex: PromiseOrValue<BigNumberish>,
660
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
661
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
662
+ ): Promise<BigNumber>;
663
+
617
664
  pushToField(
618
665
  table: PromiseOrValue<BytesLike>,
619
666
  key: PromiseOrValue<BytesLike>[],
@@ -706,6 +753,14 @@ export interface IStore extends BaseContract {
706
753
 
707
754
  isStore(overrides?: CallOverrides): Promise<PopulatedTransaction>;
708
755
 
756
+ popFromField(
757
+ table: PromiseOrValue<BytesLike>,
758
+ key: PromiseOrValue<BytesLike>[],
759
+ schemaIndex: PromiseOrValue<BigNumberish>,
760
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
761
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
762
+ ): Promise<PopulatedTransaction>;
763
+
709
764
  pushToField(
710
765
  table: PromiseOrValue<BytesLike>,
711
766
  key: PromiseOrValue<BytesLike>[],
@@ -36,6 +36,7 @@ export interface IStoreDataInterface extends utils.Interface {
36
36
  "getRecord(bytes32,bytes32[])": FunctionFragment;
37
37
  "getSchema(bytes32)": FunctionFragment;
38
38
  "isStore()": FunctionFragment;
39
+ "popFromField(bytes32,bytes32[],uint8,uint256)": FunctionFragment;
39
40
  "pushToField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
40
41
  "setField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
41
42
  "setRecord(bytes32,bytes32[],bytes)": FunctionFragment;
@@ -51,6 +52,7 @@ export interface IStoreDataInterface extends utils.Interface {
51
52
  | "getRecord(bytes32,bytes32[])"
52
53
  | "getSchema"
53
54
  | "isStore"
55
+ | "popFromField"
54
56
  | "pushToField"
55
57
  | "setField"
56
58
  | "setRecord"
@@ -90,6 +92,15 @@ export interface IStoreDataInterface extends utils.Interface {
90
92
  values: [PromiseOrValue<BytesLike>]
91
93
  ): string;
92
94
  encodeFunctionData(functionFragment: "isStore", values?: undefined): string;
95
+ encodeFunctionData(
96
+ functionFragment: "popFromField",
97
+ values: [
98
+ PromiseOrValue<BytesLike>,
99
+ PromiseOrValue<BytesLike>[],
100
+ PromiseOrValue<BigNumberish>,
101
+ PromiseOrValue<BigNumberish>
102
+ ]
103
+ ): string;
93
104
  encodeFunctionData(
94
105
  functionFragment: "pushToField",
95
106
  values: [
@@ -146,6 +157,10 @@ export interface IStoreDataInterface extends utils.Interface {
146
157
  ): Result;
147
158
  decodeFunctionResult(functionFragment: "getSchema", data: BytesLike): Result;
148
159
  decodeFunctionResult(functionFragment: "isStore", data: BytesLike): Result;
160
+ decodeFunctionResult(
161
+ functionFragment: "popFromField",
162
+ data: BytesLike
163
+ ): Result;
149
164
  decodeFunctionResult(
150
165
  functionFragment: "pushToField",
151
166
  data: BytesLike
@@ -270,6 +285,14 @@ export interface IStoreData extends BaseContract {
270
285
 
271
286
  isStore(overrides?: CallOverrides): Promise<[void]>;
272
287
 
288
+ popFromField(
289
+ table: PromiseOrValue<BytesLike>,
290
+ key: PromiseOrValue<BytesLike>[],
291
+ schemaIndex: PromiseOrValue<BigNumberish>,
292
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
293
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
294
+ ): Promise<ContractTransaction>;
295
+
273
296
  pushToField(
274
297
  table: PromiseOrValue<BytesLike>,
275
298
  key: PromiseOrValue<BytesLike>[],
@@ -341,6 +364,14 @@ export interface IStoreData extends BaseContract {
341
364
 
342
365
  isStore(overrides?: CallOverrides): Promise<void>;
343
366
 
367
+ popFromField(
368
+ table: PromiseOrValue<BytesLike>,
369
+ key: PromiseOrValue<BytesLike>[],
370
+ schemaIndex: PromiseOrValue<BigNumberish>,
371
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
372
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
373
+ ): Promise<ContractTransaction>;
374
+
344
375
  pushToField(
345
376
  table: PromiseOrValue<BytesLike>,
346
377
  key: PromiseOrValue<BytesLike>[],
@@ -412,6 +443,14 @@ export interface IStoreData extends BaseContract {
412
443
 
413
444
  isStore(overrides?: CallOverrides): Promise<void>;
414
445
 
446
+ popFromField(
447
+ table: PromiseOrValue<BytesLike>,
448
+ key: PromiseOrValue<BytesLike>[],
449
+ schemaIndex: PromiseOrValue<BigNumberish>,
450
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
451
+ overrides?: CallOverrides
452
+ ): Promise<void>;
453
+
415
454
  pushToField(
416
455
  table: PromiseOrValue<BytesLike>,
417
456
  key: PromiseOrValue<BytesLike>[],
@@ -516,6 +555,14 @@ export interface IStoreData extends BaseContract {
516
555
 
517
556
  isStore(overrides?: CallOverrides): Promise<BigNumber>;
518
557
 
558
+ popFromField(
559
+ table: PromiseOrValue<BytesLike>,
560
+ key: PromiseOrValue<BytesLike>[],
561
+ schemaIndex: PromiseOrValue<BigNumberish>,
562
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
563
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
564
+ ): Promise<BigNumber>;
565
+
519
566
  pushToField(
520
567
  table: PromiseOrValue<BytesLike>,
521
568
  key: PromiseOrValue<BytesLike>[],
@@ -588,6 +635,14 @@ export interface IStoreData extends BaseContract {
588
635
 
589
636
  isStore(overrides?: CallOverrides): Promise<PopulatedTransaction>;
590
637
 
638
+ popFromField(
639
+ table: PromiseOrValue<BytesLike>,
640
+ key: PromiseOrValue<BytesLike>[],
641
+ schemaIndex: PromiseOrValue<BigNumberish>,
642
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
643
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
644
+ ): Promise<PopulatedTransaction>;
645
+
591
646
  pushToField(
592
647
  table: PromiseOrValue<BytesLike>,
593
648
  key: PromiseOrValue<BytesLike>[],
@@ -30,6 +30,7 @@ import type {
30
30
  export interface IStoreWriteInterface extends utils.Interface {
31
31
  functions: {
32
32
  "deleteRecord(bytes32,bytes32[])": FunctionFragment;
33
+ "popFromField(bytes32,bytes32[],uint8,uint256)": FunctionFragment;
33
34
  "pushToField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
34
35
  "setField(bytes32,bytes32[],uint8,bytes)": FunctionFragment;
35
36
  "setRecord(bytes32,bytes32[],bytes)": FunctionFragment;
@@ -39,6 +40,7 @@ export interface IStoreWriteInterface extends utils.Interface {
39
40
  getFunction(
40
41
  nameOrSignatureOrTopic:
41
42
  | "deleteRecord"
43
+ | "popFromField"
42
44
  | "pushToField"
43
45
  | "setField"
44
46
  | "setRecord"
@@ -49,6 +51,15 @@ export interface IStoreWriteInterface extends utils.Interface {
49
51
  functionFragment: "deleteRecord",
50
52
  values: [PromiseOrValue<BytesLike>, PromiseOrValue<BytesLike>[]]
51
53
  ): string;
54
+ encodeFunctionData(
55
+ functionFragment: "popFromField",
56
+ values: [
57
+ PromiseOrValue<BytesLike>,
58
+ PromiseOrValue<BytesLike>[],
59
+ PromiseOrValue<BigNumberish>,
60
+ PromiseOrValue<BigNumberish>
61
+ ]
62
+ ): string;
52
63
  encodeFunctionData(
53
64
  functionFragment: "pushToField",
54
65
  values: [
@@ -90,6 +101,10 @@ export interface IStoreWriteInterface extends utils.Interface {
90
101
  functionFragment: "deleteRecord",
91
102
  data: BytesLike
92
103
  ): Result;
104
+ decodeFunctionResult(
105
+ functionFragment: "popFromField",
106
+ data: BytesLike
107
+ ): Result;
93
108
  decodeFunctionResult(
94
109
  functionFragment: "pushToField",
95
110
  data: BytesLike
@@ -182,6 +197,14 @@ export interface IStoreWrite extends BaseContract {
182
197
  overrides?: Overrides & { from?: PromiseOrValue<string> }
183
198
  ): Promise<ContractTransaction>;
184
199
 
200
+ popFromField(
201
+ table: PromiseOrValue<BytesLike>,
202
+ key: PromiseOrValue<BytesLike>[],
203
+ schemaIndex: PromiseOrValue<BigNumberish>,
204
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
205
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
206
+ ): Promise<ContractTransaction>;
207
+
185
208
  pushToField(
186
209
  table: PromiseOrValue<BytesLike>,
187
210
  key: PromiseOrValue<BytesLike>[],
@@ -221,6 +244,14 @@ export interface IStoreWrite extends BaseContract {
221
244
  overrides?: Overrides & { from?: PromiseOrValue<string> }
222
245
  ): Promise<ContractTransaction>;
223
246
 
247
+ popFromField(
248
+ table: PromiseOrValue<BytesLike>,
249
+ key: PromiseOrValue<BytesLike>[],
250
+ schemaIndex: PromiseOrValue<BigNumberish>,
251
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
252
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
253
+ ): Promise<ContractTransaction>;
254
+
224
255
  pushToField(
225
256
  table: PromiseOrValue<BytesLike>,
226
257
  key: PromiseOrValue<BytesLike>[],
@@ -260,6 +291,14 @@ export interface IStoreWrite extends BaseContract {
260
291
  overrides?: CallOverrides
261
292
  ): Promise<void>;
262
293
 
294
+ popFromField(
295
+ table: PromiseOrValue<BytesLike>,
296
+ key: PromiseOrValue<BytesLike>[],
297
+ schemaIndex: PromiseOrValue<BigNumberish>,
298
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
299
+ overrides?: CallOverrides
300
+ ): Promise<void>;
301
+
263
302
  pushToField(
264
303
  table: PromiseOrValue<BytesLike>,
265
304
  key: PromiseOrValue<BytesLike>[],
@@ -332,6 +371,14 @@ export interface IStoreWrite extends BaseContract {
332
371
  overrides?: Overrides & { from?: PromiseOrValue<string> }
333
372
  ): Promise<BigNumber>;
334
373
 
374
+ popFromField(
375
+ table: PromiseOrValue<BytesLike>,
376
+ key: PromiseOrValue<BytesLike>[],
377
+ schemaIndex: PromiseOrValue<BigNumberish>,
378
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
379
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
380
+ ): Promise<BigNumber>;
381
+
335
382
  pushToField(
336
383
  table: PromiseOrValue<BytesLike>,
337
384
  key: PromiseOrValue<BytesLike>[],
@@ -372,6 +419,14 @@ export interface IStoreWrite extends BaseContract {
372
419
  overrides?: Overrides & { from?: PromiseOrValue<string> }
373
420
  ): Promise<PopulatedTransaction>;
374
421
 
422
+ popFromField(
423
+ table: PromiseOrValue<BytesLike>,
424
+ key: PromiseOrValue<BytesLike>[],
425
+ schemaIndex: PromiseOrValue<BigNumberish>,
426
+ byteLengthToPop: PromiseOrValue<BigNumberish>,
427
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
428
+ ): Promise<PopulatedTransaction>;
429
+
375
430
  pushToField(
376
431
  table: PromiseOrValue<BytesLike>,
377
432
  key: PromiseOrValue<BytesLike>[],