@latticexyz/world 1.40.0 → 1.41.0

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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/abi/AddressArraySchemaLib.json +718 -869
  3. package/abi/BoolSchemaLib.json +401 -401
  4. package/abi/Bytes.json +1162 -1162
  5. package/abi/CommonBase.json +125 -125
  6. package/abi/DSTest.json +2630 -2630
  7. package/abi/DecodeSlice.json +3883 -3883
  8. package/abi/EncodeArray.json +3336 -3336
  9. package/abi/Hooks.json +1491 -785
  10. package/abi/IMulticall3.json +283 -283
  11. package/abi/IStore.json +623 -421
  12. package/abi/IStoreHook.json +567 -421
  13. package/abi/ISystemHook.json +19 -19
  14. package/abi/Memory.json +131 -131
  15. package/abi/PackedCounterLib.json +683 -683
  16. package/abi/RouteAccess.json +2209 -1159
  17. package/abi/RouteOwnerSchemaLib.json +349 -349
  18. package/abi/RouteOwnerTable.json +297 -297
  19. package/abi/RouteSchemaLib.json +433 -433
  20. package/abi/RouteTable.json +336 -336
  21. package/abi/SchemaLib.json +1211 -1211
  22. package/abi/ScriptBase.json +125 -125
  23. package/abi/SliceInstance.json +429 -429
  24. package/abi/SliceLib.json +429 -429
  25. package/abi/StdAssertions.json +2135 -2135
  26. package/abi/StdChains.json +1051 -1051
  27. package/abi/StdCheats.json +3257 -3257
  28. package/abi/StdCheatsSafe.json +3257 -3257
  29. package/abi/StdInvariant.json +337 -337
  30. package/abi/StdUtils.json +1122 -1122
  31. package/abi/Storage.json +491 -491
  32. package/abi/Store.json +374 -209
  33. package/abi/StoreCore.json +10665 -7865
  34. package/abi/StoreCoreExtended.json +10443 -7722
  35. package/abi/StoreCoreInternal.json +10482 -7638
  36. package/abi/StoreMetadata.json +3719 -2417
  37. package/abi/StoreSwitch.json +1692 -783
  38. package/abi/System.json +16 -16
  39. package/abi/SystemRouteSchemaLib.json +402 -402
  40. package/abi/SystemRouteTable.json +336 -336
  41. package/abi/SystemTable.json +8544 -651
  42. package/abi/SystemTest.json +287 -303
  43. package/abi/Test.json +124 -124
  44. package/abi/TestBase.json +125 -125
  45. package/abi/TestSystem.json +287 -303
  46. package/abi/TightCoder.json +272 -272
  47. package/abi/Utils.json +67 -67
  48. package/abi/Vm.json +1850 -1850
  49. package/abi/VmSafe.json +1850 -1850
  50. package/abi/World.json +5183 -3374
  51. package/abi/WorldTest.json +9983 -10520
  52. package/abi/WorldTestSystem.json +9992 -10503
  53. package/abi/WorldTestTableHook.json +9978 -10511
  54. package/abi/console.json +11417 -11417
  55. package/abi/console2.json +11459 -11459
  56. package/abi/stdError.json +79 -79
  57. package/abi/stdJson.json +1016 -1016
  58. package/abi/stdMath.json +218 -218
  59. package/abi/stdStorage.json +2400 -2400
  60. package/abi/stdStorageSafe.json +2400 -2400
  61. package/package.json +8 -8
  62. package/src/World.sol +78 -32
  63. package/src/schemas/AddressArray.sol +5 -19
  64. package/src/tables/RouteAccess.sol +35 -30
  65. package/src/tables/SystemTable.sol +142 -23
  66. package/types/ethers-contracts/IStore.ts +49 -0
  67. package/types/ethers-contracts/Store.ts +49 -0
  68. package/types/ethers-contracts/World.ts +94 -0
  69. package/types/ethers-contracts/WorldTest.ts +27 -0
  70. package/types/ethers-contracts/factories/IStore__factory.ts +28 -0
  71. package/types/ethers-contracts/factories/StoreCore__factory.ts +2 -23
  72. package/types/ethers-contracts/factories/StoreSwitch__factory.ts +1 -1
  73. package/types/ethers-contracts/factories/Store__factory.ts +81 -0
  74. package/types/ethers-contracts/factories/SystemTest__factory.ts +1 -1
  75. package/types/ethers-contracts/factories/TestSystem__factory.ts +1 -1
  76. package/types/ethers-contracts/factories/WorldTestSystem__factory.ts +12 -1
  77. package/types/ethers-contracts/factories/WorldTestTableHook__factory.ts +1 -1
  78. package/types/ethers-contracts/factories/WorldTest__factory.ts +11 -34
  79. package/types/ethers-contracts/factories/World__factory.ts +70 -30
  80. package/types/ethers-contracts/index.ts +0 -2
  81. package/abi/SystemSchemaLib.json +0 -3704
  82. package/src/schemas/SystemSchema.sol +0 -78
  83. package/types/ethers-contracts/StoreCoreExtended.ts +0 -141
  84. package/types/ethers-contracts/factories/StoreCoreExtended__factory.ts +0 -123
@@ -1,78 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.0;
3
-
4
- import { console } from "forge-std/console.sol";
5
- import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
6
- import { IStore } from "@latticexyz/store/src/IStore.sol";
7
- import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
8
- import { StoreCore } from "@latticexyz/store/src/StoreCore.sol";
9
- import { Bytes } from "@latticexyz/store/src/Bytes.sol";
10
- import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
11
- import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
12
- import { SliceLib } from "@latticexyz/store/src/Slice.sol";
13
- import { bytes32ToBool } from "../Utils.sol";
14
-
15
- // -- User defined schema and tableId --
16
- struct SystemSchema {
17
- address system;
18
- bool publicAccess;
19
- }
20
-
21
- // -- Autogenerated library to interact with tables with this schema --
22
- // TODO: autogenerate
23
-
24
- library SystemSchemaLib {
25
- /** Get the table's schema */
26
- function getSchema() internal pure returns (Schema schema) {
27
- schema = SchemaLib.encode(SchemaType.BOOL, SchemaType.ADDRESS);
28
- }
29
-
30
- /** Register the table's schema */
31
- function registerSchema(uint256 tableId) internal {
32
- StoreSwitch.registerSchema(tableId, getSchema());
33
- }
34
-
35
- function registerSchema(uint256 tableId, IStore store) internal {
36
- store.registerSchema(tableId, getSchema());
37
- }
38
-
39
- /** Set the table's data */
40
- function set(
41
- uint256 tableId,
42
- uint256 routeId,
43
- SystemSchema memory value
44
- ) internal {
45
- set(tableId, routeId, value.system, value.publicAccess);
46
- }
47
-
48
- function set(
49
- uint256 tableId,
50
- uint256 routeId,
51
- address system,
52
- bool publicAccess
53
- ) internal {
54
- bytes32[] memory keyTuple = new bytes32[](1);
55
- keyTuple[0] = bytes32(routeId);
56
- StoreSwitch.setRecord(tableId, keyTuple, abi.encodePacked(system, publicAccess));
57
- }
58
-
59
- function get(uint256 tableId, uint256 routeId) internal view returns (address system, bool publicAccess) {
60
- bytes32[] memory keyTuple = new bytes32[](1);
61
- keyTuple[0] = bytes32(routeId);
62
- bytes memory blob = StoreSwitch.getRecord(tableId, keyTuple);
63
- system = address(bytes20(blob));
64
- publicAccess = bytes32ToBool(SliceLib.getSubslice(blob, 20).toBytes32());
65
- }
66
-
67
- function get(
68
- uint256 tableId,
69
- IStore store,
70
- uint256 routeId
71
- ) internal view returns (address system, bool publicAccess) {
72
- bytes32[] memory keyTuple = new bytes32[](1);
73
- keyTuple[0] = bytes32(routeId);
74
- bytes memory blob = store.getRecord(tableId, keyTuple);
75
- system = address(bytes20(blob));
76
- publicAccess = bytes32ToBool(SliceLib.getSubslice(blob, 20).toBytes32());
77
- }
78
- }
@@ -1,141 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import {
5
- BaseContract,
6
- BigNumber,
7
- BigNumberish,
8
- BytesLike,
9
- CallOverrides,
10
- PopulatedTransaction,
11
- Signer,
12
- utils,
13
- } from "ethers";
14
- import { FunctionFragment, Result } from "@ethersproject/abi";
15
- import { Listener, Provider } from "@ethersproject/providers";
16
- import type {
17
- TypedEventFilter,
18
- TypedEvent,
19
- TypedListener,
20
- OnEvent,
21
- } from "./common";
22
-
23
- export interface StoreCoreExtendedInterface extends utils.Interface {
24
- contractName: "StoreCoreExtended";
25
- functions: {
26
- "getData(uint256,bytes32[2])": FunctionFragment;
27
- "getRecord(uint256,bytes32)": FunctionFragment;
28
- };
29
-
30
- encodeFunctionData(
31
- functionFragment: "getData",
32
- values: [BigNumberish, [BytesLike, BytesLike]]
33
- ): string;
34
- encodeFunctionData(
35
- functionFragment: "getRecord",
36
- values: [BigNumberish, BytesLike]
37
- ): string;
38
-
39
- decodeFunctionResult(functionFragment: "getData", data: BytesLike): Result;
40
- decodeFunctionResult(functionFragment: "getRecord", data: BytesLike): Result;
41
-
42
- events: {};
43
- }
44
-
45
- export interface StoreCoreExtended extends BaseContract {
46
- contractName: "StoreCoreExtended";
47
- connect(signerOrProvider: Signer | Provider | string): this;
48
- attach(addressOrName: string): this;
49
- deployed(): Promise<this>;
50
-
51
- interface: StoreCoreExtendedInterface;
52
-
53
- queryFilter<TEvent extends TypedEvent>(
54
- event: TypedEventFilter<TEvent>,
55
- fromBlockOrBlockhash?: string | number | undefined,
56
- toBlock?: string | number | undefined
57
- ): Promise<Array<TEvent>>;
58
-
59
- listeners<TEvent extends TypedEvent>(
60
- eventFilter?: TypedEventFilter<TEvent>
61
- ): Array<TypedListener<TEvent>>;
62
- listeners(eventName?: string): Array<Listener>;
63
- removeAllListeners<TEvent extends TypedEvent>(
64
- eventFilter: TypedEventFilter<TEvent>
65
- ): this;
66
- removeAllListeners(eventName?: string): this;
67
- off: OnEvent<this>;
68
- on: OnEvent<this>;
69
- once: OnEvent<this>;
70
- removeListener: OnEvent<this>;
71
-
72
- functions: {
73
- getData(
74
- table: BigNumberish,
75
- _key: [BytesLike, BytesLike],
76
- overrides?: CallOverrides
77
- ): Promise<[string]>;
78
-
79
- getRecord(
80
- table: BigNumberish,
81
- _key: BytesLike,
82
- overrides?: CallOverrides
83
- ): Promise<[string]>;
84
- };
85
-
86
- getData(
87
- table: BigNumberish,
88
- _key: [BytesLike, BytesLike],
89
- overrides?: CallOverrides
90
- ): Promise<string>;
91
-
92
- getRecord(
93
- table: BigNumberish,
94
- _key: BytesLike,
95
- overrides?: CallOverrides
96
- ): Promise<string>;
97
-
98
- callStatic: {
99
- getData(
100
- table: BigNumberish,
101
- _key: [BytesLike, BytesLike],
102
- overrides?: CallOverrides
103
- ): Promise<string>;
104
-
105
- getRecord(
106
- table: BigNumberish,
107
- _key: BytesLike,
108
- overrides?: CallOverrides
109
- ): Promise<string>;
110
- };
111
-
112
- filters: {};
113
-
114
- estimateGas: {
115
- getData(
116
- table: BigNumberish,
117
- _key: [BytesLike, BytesLike],
118
- overrides?: CallOverrides
119
- ): Promise<BigNumber>;
120
-
121
- getRecord(
122
- table: BigNumberish,
123
- _key: BytesLike,
124
- overrides?: CallOverrides
125
- ): Promise<BigNumber>;
126
- };
127
-
128
- populateTransaction: {
129
- getData(
130
- table: BigNumberish,
131
- _key: [BytesLike, BytesLike],
132
- overrides?: CallOverrides
133
- ): Promise<PopulatedTransaction>;
134
-
135
- getRecord(
136
- table: BigNumberish,
137
- _key: BytesLike,
138
- overrides?: CallOverrides
139
- ): Promise<PopulatedTransaction>;
140
- };
141
- }
@@ -1,123 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
- import { Provider, TransactionRequest } from "@ethersproject/providers";
6
- import type {
7
- StoreCoreExtended,
8
- StoreCoreExtendedInterface,
9
- } from "../StoreCoreExtended";
10
-
11
- const _abi = [
12
- {
13
- inputs: [
14
- {
15
- internalType: "uint256",
16
- name: "table",
17
- type: "uint256",
18
- },
19
- ],
20
- name: "StoreCore_TableNotFound",
21
- type: "error",
22
- },
23
- {
24
- inputs: [
25
- {
26
- internalType: "uint256",
27
- name: "table",
28
- type: "uint256",
29
- },
30
- {
31
- internalType: "bytes32[2]",
32
- name: "_key",
33
- type: "bytes32[2]",
34
- },
35
- ],
36
- name: "getData",
37
- outputs: [
38
- {
39
- internalType: "bytes",
40
- name: "",
41
- type: "bytes",
42
- },
43
- ],
44
- stateMutability: "view",
45
- type: "function",
46
- },
47
- {
48
- inputs: [
49
- {
50
- internalType: "uint256",
51
- name: "table",
52
- type: "uint256",
53
- },
54
- {
55
- internalType: "bytes32",
56
- name: "_key",
57
- type: "bytes32",
58
- },
59
- ],
60
- name: "getRecord",
61
- outputs: [
62
- {
63
- internalType: "bytes",
64
- name: "",
65
- type: "bytes",
66
- },
67
- ],
68
- stateMutability: "view",
69
- type: "function",
70
- },
71
- ];
72
-
73
- const _bytecode =
74
- "0x61085e61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80639ac8027c14610045578063cb8d1bf71461006e575b600080fd5b610058610053366004610583565b610081565b60405161006591906105a5565b60405180910390f35b61005861007c366004610610565b6100d9565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106100bb576100bb61069a565b6020026020010181815250506100d1848261013a565b949350505050565b60408051600280825260608083018452926000929190602083019080368337505084518251929350918391506000906101145761011461069a565b60209081029190910101528260016020020151816001815181106100bb576100bb61069a565b6060600061014784610192565b905080610187576040517f3a5454520000000000000000000000000000000000000000000000000000000081526004810185905260240160405180910390fd5b6100d18484836101a3565b600061019d82610303565b92915050565b606060006101b18360f01c90565b905080600060ff60e086901c168015610204576101ce8888610380565b915060006101dc8360e01c90565b1115610204576101ec8260e01c90565b6101f79060206106c6565b61020190846106c6565b92505b60008367ffffffffffffffff81111561021f5761021f6105fa565b6040519080825280601f01601f191660200182016040528015610249576020820181803683370190505b5090506020810161025c8a8a888461038d565b6102668460e01c90565b60000361027a575094506102fc9350505050565b61028486826106c6565b84815290506102946020826106c6565b905060005b838160ff1610156102f25760006102b18c8c846103b6565b905060006102c28760ff851661040f565b90506102d18282600087610441565b6102db81856106c6565b9350505080806102ea906106de565b915050610299565b5090955050505050505b9392505050565b604080516001808252818301909252600091829190602080830190803683370190505090508260001b8160008151811061033f5761033f61069a565b602090810291909101015260006103767f466b87090ce2bc34362737dab7b900dfc94a202aee6a6323f6813f7ce59d975e836104f6565b90506100d1815490565b600080610376848461054c565b81156103b057600061039f85856104f6565b90506103ae8184600085610441565b505b50505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d98484846040516020016103ef9493929190610738565b60408051601f198184030181529190528051602090910120949350505050565b60008061041d83600261076b565b6104289060046106c6565b905061043684826008021b90565b60f01c949350505050565b6020820484019350602082816104595761045961078a565b06915081156104aa5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116104955750506103b0565b6104a06001876106c6565b9550509283900392015b602083106104d257835481526104c16001856106c6565b9350601f19909201916020016104aa565b82156103b0576000600019600885021c198251865482169119161782525050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161052d939291906107a0565b60408051601f1981840301815291905280516020909101209392505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161052d939291906107c8565b6000806040838503121561059657600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156105d2578581018301518582016040015282016105b6565b818111156105e4576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052604160045260246000fd5b6000806060838503121561062357600080fd5b82359150602084603f85011261063857600080fd5b6040516040810181811067ffffffffffffffff8211171561065b5761065b6105fa565b60405280606086018781111561067057600080fd5b8387015b8181101561068b5780358352918401918401610674565b50505080925050509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156106d9576106d96106b0565b500190565b600060ff821660ff81036106f4576106f46106b0565b60010192915050565b600081518084526020808501945080840160005b8381101561072d57815187529582019590820190600101610711565b509495945050505050565b84815283602082015260806040820152600061075760808301856106fd565b905060ff8316606083015295945050505050565b6000816000190483118215151615610785576107856106b0565b500290565b634e487b7160e01b600052601260045260246000fd5b8381528260208201526060604082015260006107bf60608301846106fd565b95945050505050565b8381528260208201526080604082015260006107e760808301846106fd565b8281036060840152600681527f6c656e677468000000000000000000000000000000000000000000000000000060208201526040810191505094935050505056fea2646970667358221220d63a9d4dee1cc99cd9013a10207599ca39b0236451426e415bbde7b7a0d108b364736f6c634300080d0033";
75
-
76
- type StoreCoreExtendedConstructorParams =
77
- | [signer?: Signer]
78
- | ConstructorParameters<typeof ContractFactory>;
79
-
80
- const isSuperArgs = (
81
- xs: StoreCoreExtendedConstructorParams
82
- ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
83
-
84
- export class StoreCoreExtended__factory extends ContractFactory {
85
- constructor(...args: StoreCoreExtendedConstructorParams) {
86
- if (isSuperArgs(args)) {
87
- super(...args);
88
- } else {
89
- super(_abi, _bytecode, args[0]);
90
- }
91
- this.contractName = "StoreCoreExtended";
92
- }
93
-
94
- deploy(
95
- overrides?: Overrides & { from?: string | Promise<string> }
96
- ): Promise<StoreCoreExtended> {
97
- return super.deploy(overrides || {}) as Promise<StoreCoreExtended>;
98
- }
99
- getDeployTransaction(
100
- overrides?: Overrides & { from?: string | Promise<string> }
101
- ): TransactionRequest {
102
- return super.getDeployTransaction(overrides || {});
103
- }
104
- attach(address: string): StoreCoreExtended {
105
- return super.attach(address) as StoreCoreExtended;
106
- }
107
- connect(signer: Signer): StoreCoreExtended__factory {
108
- return super.connect(signer) as StoreCoreExtended__factory;
109
- }
110
- static readonly contractName: "StoreCoreExtended";
111
- public readonly contractName: "StoreCoreExtended";
112
- static readonly bytecode = _bytecode;
113
- static readonly abi = _abi;
114
- static createInterface(): StoreCoreExtendedInterface {
115
- return new utils.Interface(_abi) as StoreCoreExtendedInterface;
116
- }
117
- static connect(
118
- address: string,
119
- signerOrProvider: Signer | Provider
120
- ): StoreCoreExtended {
121
- return new Contract(address, _abi, signerOrProvider) as StoreCoreExtended;
122
- }
123
- }