@latticexyz/schema-type 1.40.0 → 2.0.0-alpha.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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/dist/typescript/AbiTypeToSchemaType.d.ts +4 -0
  3. package/dist/typescript/AbiTypeToSchemaType.js +3 -0
  4. package/dist/typescript/AbiTypeToSchemaType.js.map +1 -0
  5. package/dist/typescript/AbiTypes.d.ts +4 -0
  6. package/dist/typescript/AbiTypes.js +3 -0
  7. package/dist/typescript/AbiTypes.js.map +1 -0
  8. package/dist/typescript/ArraySchemaType.d.ts +2 -0
  9. package/dist/typescript/ArraySchemaType.js +2 -0
  10. package/dist/typescript/ArraySchemaType.js.map +1 -0
  11. package/dist/typescript/DynamicSchemaType.d.ts +3 -0
  12. package/dist/typescript/DynamicSchemaType.js +2 -0
  13. package/dist/typescript/DynamicSchemaType.js.map +1 -0
  14. package/dist/typescript/SchemaType.d.ts +0 -204
  15. package/dist/typescript/SchemaType.js +0 -324
  16. package/dist/typescript/SchemaType.js.map +1 -1
  17. package/dist/typescript/SchemaTypeArrayToElement.d.ts +201 -0
  18. package/dist/typescript/SchemaTypeArrayToElement.js +102 -0
  19. package/dist/typescript/SchemaTypeArrayToElement.js.map +1 -0
  20. package/dist/typescript/SchemaTypeId.d.ts +2 -0
  21. package/dist/typescript/SchemaTypeId.js +202 -0
  22. package/dist/typescript/SchemaTypeId.js.map +1 -0
  23. package/dist/typescript/SchemaTypeToAbiType.d.ts +200 -0
  24. package/dist/typescript/SchemaTypeToAbiType.js +202 -0
  25. package/dist/typescript/SchemaTypeToAbiType.js.map +1 -0
  26. package/dist/typescript/SchemaTypeToPrimitive.d.ts +201 -0
  27. package/dist/typescript/SchemaTypeToPrimitive.js +2 -0
  28. package/dist/typescript/SchemaTypeToPrimitive.js.map +1 -0
  29. package/dist/typescript/StaticAbiTypes.d.ts +4 -0
  30. package/dist/typescript/StaticAbiTypes.js +5 -0
  31. package/dist/typescript/StaticAbiTypes.js.map +1 -0
  32. package/dist/typescript/StaticSchemaType.d.ts +3 -0
  33. package/dist/typescript/StaticSchemaType.js +2 -0
  34. package/dist/typescript/StaticSchemaType.js.map +1 -0
  35. package/dist/typescript/encodeSchema.d.ts +8 -0
  36. package/dist/typescript/encodeSchema.js +43 -0
  37. package/dist/typescript/encodeSchema.js.map +1 -0
  38. package/dist/typescript/getStaticByteLength.d.ts +2 -0
  39. package/dist/typescript/getStaticByteLength.js +26 -0
  40. package/dist/typescript/getStaticByteLength.js.map +1 -0
  41. package/dist/typescript/index.d.ts +14 -0
  42. package/dist/typescript/index.js +9 -0
  43. package/dist/typescript/index.js.map +1 -0
  44. package/package.json +4 -4
  45. package/src/typescript/AbiTypeToSchemaType.ts +6 -0
  46. package/src/typescript/AbiTypes.ts +5 -0
  47. package/src/typescript/ArraySchemaType.ts +101 -0
  48. package/src/typescript/DynamicSchemaType.ts +4 -0
  49. package/src/typescript/SchemaType.ts +0 -441
  50. package/src/typescript/SchemaTypeArrayToElement.ts +109 -0
  51. package/src/typescript/SchemaTypeToAbiType.ts +210 -0
  52. package/src/typescript/SchemaTypeToPrimitive.ts +210 -0
  53. package/src/typescript/StaticAbiTypes.ts +10 -0
  54. package/src/typescript/StaticSchemaType.ts +4 -0
  55. package/src/typescript/encodeSchema.ts +47 -0
  56. package/src/typescript/getStaticByteLength.ts +25 -0
  57. package/src/typescript/index.ts +15 -0
@@ -0,0 +1,210 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+
3
+ export const SchemaTypeToAbiType = {
4
+ [SchemaType.UINT8]: "uint8",
5
+ [SchemaType.UINT16]: "uint16",
6
+ [SchemaType.UINT24]: "uint24",
7
+ [SchemaType.UINT32]: "uint32",
8
+ [SchemaType.UINT40]: "uint40",
9
+ [SchemaType.UINT48]: "uint48",
10
+ [SchemaType.UINT56]: "uint56",
11
+ [SchemaType.UINT64]: "uint64",
12
+ [SchemaType.UINT72]: "uint72",
13
+ [SchemaType.UINT80]: "uint80",
14
+ [SchemaType.UINT88]: "uint88",
15
+ [SchemaType.UINT96]: "uint96",
16
+ [SchemaType.UINT104]: "uint104",
17
+ [SchemaType.UINT112]: "uint112",
18
+ [SchemaType.UINT120]: "uint120",
19
+ [SchemaType.UINT128]: "uint128",
20
+ [SchemaType.UINT136]: "uint136",
21
+ [SchemaType.UINT144]: "uint144",
22
+ [SchemaType.UINT152]: "uint152",
23
+ [SchemaType.UINT160]: "uint160",
24
+ [SchemaType.UINT168]: "uint168",
25
+ [SchemaType.UINT176]: "uint176",
26
+ [SchemaType.UINT184]: "uint184",
27
+ [SchemaType.UINT192]: "uint192",
28
+ [SchemaType.UINT200]: "uint200",
29
+ [SchemaType.UINT208]: "uint208",
30
+ [SchemaType.UINT216]: "uint216",
31
+ [SchemaType.UINT224]: "uint224",
32
+ [SchemaType.UINT232]: "uint232",
33
+ [SchemaType.UINT240]: "uint240",
34
+ [SchemaType.UINT248]: "uint248",
35
+ [SchemaType.UINT256]: "uint256",
36
+
37
+ [SchemaType.INT8]: "int8",
38
+ [SchemaType.INT16]: "int16",
39
+ [SchemaType.INT24]: "int24",
40
+ [SchemaType.INT32]: "int32",
41
+ [SchemaType.INT40]: "int40",
42
+ [SchemaType.INT48]: "int48",
43
+ [SchemaType.INT56]: "int56",
44
+ [SchemaType.INT64]: "int64",
45
+ [SchemaType.INT72]: "int72",
46
+ [SchemaType.INT80]: "int80",
47
+ [SchemaType.INT88]: "int88",
48
+ [SchemaType.INT96]: "int96",
49
+ [SchemaType.INT104]: "int104",
50
+ [SchemaType.INT112]: "int112",
51
+ [SchemaType.INT120]: "int120",
52
+ [SchemaType.INT128]: "int128",
53
+ [SchemaType.INT136]: "int136",
54
+ [SchemaType.INT144]: "int144",
55
+ [SchemaType.INT152]: "int152",
56
+ [SchemaType.INT160]: "int160",
57
+ [SchemaType.INT168]: "int168",
58
+ [SchemaType.INT176]: "int176",
59
+ [SchemaType.INT184]: "int184",
60
+ [SchemaType.INT192]: "int192",
61
+ [SchemaType.INT200]: "int200",
62
+ [SchemaType.INT208]: "int208",
63
+ [SchemaType.INT216]: "int216",
64
+ [SchemaType.INT224]: "int224",
65
+ [SchemaType.INT232]: "int232",
66
+ [SchemaType.INT240]: "int240",
67
+ [SchemaType.INT248]: "int248",
68
+ [SchemaType.INT256]: "int256",
69
+
70
+ [SchemaType.BYTES1]: "bytes1",
71
+ [SchemaType.BYTES2]: "bytes2",
72
+ [SchemaType.BYTES3]: "bytes3",
73
+ [SchemaType.BYTES4]: "bytes4",
74
+ [SchemaType.BYTES5]: "bytes5",
75
+ [SchemaType.BYTES6]: "bytes6",
76
+ [SchemaType.BYTES7]: "bytes7",
77
+ [SchemaType.BYTES8]: "bytes8",
78
+ [SchemaType.BYTES9]: "bytes9",
79
+ [SchemaType.BYTES10]: "bytes10",
80
+ [SchemaType.BYTES11]: "bytes11",
81
+ [SchemaType.BYTES12]: "bytes12",
82
+ [SchemaType.BYTES13]: "bytes13",
83
+ [SchemaType.BYTES14]: "bytes14",
84
+ [SchemaType.BYTES15]: "bytes15",
85
+ [SchemaType.BYTES16]: "bytes16",
86
+ [SchemaType.BYTES17]: "bytes17",
87
+ [SchemaType.BYTES18]: "bytes18",
88
+ [SchemaType.BYTES19]: "bytes19",
89
+ [SchemaType.BYTES20]: "bytes20",
90
+ [SchemaType.BYTES21]: "bytes21",
91
+ [SchemaType.BYTES22]: "bytes22",
92
+ [SchemaType.BYTES23]: "bytes23",
93
+ [SchemaType.BYTES24]: "bytes24",
94
+ [SchemaType.BYTES25]: "bytes25",
95
+ [SchemaType.BYTES26]: "bytes26",
96
+ [SchemaType.BYTES27]: "bytes27",
97
+ [SchemaType.BYTES28]: "bytes28",
98
+ [SchemaType.BYTES29]: "bytes29",
99
+ [SchemaType.BYTES30]: "bytes30",
100
+ [SchemaType.BYTES31]: "bytes31",
101
+ [SchemaType.BYTES32]: "bytes32",
102
+
103
+ [SchemaType.BOOL]: "bool",
104
+ [SchemaType.ADDRESS]: "address",
105
+
106
+ [SchemaType.UINT8_ARRAY]: "uint8[]",
107
+ [SchemaType.UINT16_ARRAY]: "uint16[]",
108
+ [SchemaType.UINT24_ARRAY]: "uint24[]",
109
+ [SchemaType.UINT32_ARRAY]: "uint32[]",
110
+ [SchemaType.UINT40_ARRAY]: "uint40[]",
111
+ [SchemaType.UINT48_ARRAY]: "uint48[]",
112
+ [SchemaType.UINT56_ARRAY]: "uint56[]",
113
+ [SchemaType.UINT64_ARRAY]: "uint64[]",
114
+ [SchemaType.UINT72_ARRAY]: "uint72[]",
115
+ [SchemaType.UINT80_ARRAY]: "uint80[]",
116
+ [SchemaType.UINT88_ARRAY]: "uint88[]",
117
+ [SchemaType.UINT96_ARRAY]: "uint96[]",
118
+ [SchemaType.UINT104_ARRAY]: "uint104[]",
119
+ [SchemaType.UINT112_ARRAY]: "uint112[]",
120
+ [SchemaType.UINT120_ARRAY]: "uint120[]",
121
+ [SchemaType.UINT128_ARRAY]: "uint128[]",
122
+ [SchemaType.UINT136_ARRAY]: "uint136[]",
123
+ [SchemaType.UINT144_ARRAY]: "uint144[]",
124
+ [SchemaType.UINT152_ARRAY]: "uint152[]",
125
+ [SchemaType.UINT160_ARRAY]: "uint160[]",
126
+ [SchemaType.UINT168_ARRAY]: "uint168[]",
127
+ [SchemaType.UINT176_ARRAY]: "uint176[]",
128
+ [SchemaType.UINT184_ARRAY]: "uint184[]",
129
+ [SchemaType.UINT192_ARRAY]: "uint192[]",
130
+ [SchemaType.UINT200_ARRAY]: "uint200[]",
131
+ [SchemaType.UINT208_ARRAY]: "uint208[]",
132
+ [SchemaType.UINT216_ARRAY]: "uint216[]",
133
+ [SchemaType.UINT224_ARRAY]: "uint224[]",
134
+ [SchemaType.UINT232_ARRAY]: "uint232[]",
135
+ [SchemaType.UINT240_ARRAY]: "uint240[]",
136
+ [SchemaType.UINT248_ARRAY]: "uint248[]",
137
+ [SchemaType.UINT256_ARRAY]: "uint256[]",
138
+
139
+ [SchemaType.INT8_ARRAY]: "int8[]",
140
+ [SchemaType.INT16_ARRAY]: "int16[]",
141
+ [SchemaType.INT24_ARRAY]: "int24[]",
142
+ [SchemaType.INT32_ARRAY]: "int32[]",
143
+ [SchemaType.INT40_ARRAY]: "int40[]",
144
+ [SchemaType.INT48_ARRAY]: "int48[]",
145
+ [SchemaType.INT56_ARRAY]: "int56[]",
146
+ [SchemaType.INT64_ARRAY]: "int64[]",
147
+ [SchemaType.INT72_ARRAY]: "int72[]",
148
+ [SchemaType.INT80_ARRAY]: "int80[]",
149
+ [SchemaType.INT88_ARRAY]: "int88[]",
150
+ [SchemaType.INT96_ARRAY]: "int96[]",
151
+ [SchemaType.INT104_ARRAY]: "int104[]",
152
+ [SchemaType.INT112_ARRAY]: "int112[]",
153
+ [SchemaType.INT120_ARRAY]: "int120[]",
154
+ [SchemaType.INT128_ARRAY]: "int128[]",
155
+ [SchemaType.INT136_ARRAY]: "int136[]",
156
+ [SchemaType.INT144_ARRAY]: "int144[]",
157
+ [SchemaType.INT152_ARRAY]: "int152[]",
158
+ [SchemaType.INT160_ARRAY]: "int160[]",
159
+ [SchemaType.INT168_ARRAY]: "int168[]",
160
+ [SchemaType.INT176_ARRAY]: "int176[]",
161
+ [SchemaType.INT184_ARRAY]: "int184[]",
162
+ [SchemaType.INT192_ARRAY]: "int192[]",
163
+ [SchemaType.INT200_ARRAY]: "int200[]",
164
+ [SchemaType.INT208_ARRAY]: "int208[]",
165
+ [SchemaType.INT216_ARRAY]: "int216[]",
166
+ [SchemaType.INT224_ARRAY]: "int224[]",
167
+ [SchemaType.INT232_ARRAY]: "int232[]",
168
+ [SchemaType.INT240_ARRAY]: "int240[]",
169
+ [SchemaType.INT248_ARRAY]: "int248[]",
170
+ [SchemaType.INT256_ARRAY]: "int256[]",
171
+
172
+ [SchemaType.BYTES1_ARRAY]: "bytes1[]",
173
+ [SchemaType.BYTES2_ARRAY]: "bytes2[]",
174
+ [SchemaType.BYTES3_ARRAY]: "bytes3[]",
175
+ [SchemaType.BYTES4_ARRAY]: "bytes4[]",
176
+ [SchemaType.BYTES5_ARRAY]: "bytes5[]",
177
+ [SchemaType.BYTES6_ARRAY]: "bytes6[]",
178
+ [SchemaType.BYTES7_ARRAY]: "bytes7[]",
179
+ [SchemaType.BYTES8_ARRAY]: "bytes8[]",
180
+ [SchemaType.BYTES9_ARRAY]: "bytes9[]",
181
+ [SchemaType.BYTES10_ARRAY]: "bytes10[]",
182
+ [SchemaType.BYTES11_ARRAY]: "bytes11[]",
183
+ [SchemaType.BYTES12_ARRAY]: "bytes12[]",
184
+ [SchemaType.BYTES13_ARRAY]: "bytes13[]",
185
+ [SchemaType.BYTES14_ARRAY]: "bytes14[]",
186
+ [SchemaType.BYTES15_ARRAY]: "bytes15[]",
187
+ [SchemaType.BYTES16_ARRAY]: "bytes16[]",
188
+ [SchemaType.BYTES17_ARRAY]: "bytes17[]",
189
+ [SchemaType.BYTES18_ARRAY]: "bytes18[]",
190
+ [SchemaType.BYTES19_ARRAY]: "bytes19[]",
191
+ [SchemaType.BYTES20_ARRAY]: "bytes20[]",
192
+ [SchemaType.BYTES21_ARRAY]: "bytes21[]",
193
+ [SchemaType.BYTES22_ARRAY]: "bytes22[]",
194
+ [SchemaType.BYTES23_ARRAY]: "bytes23[]",
195
+ [SchemaType.BYTES24_ARRAY]: "bytes24[]",
196
+ [SchemaType.BYTES25_ARRAY]: "bytes25[]",
197
+ [SchemaType.BYTES26_ARRAY]: "bytes26[]",
198
+ [SchemaType.BYTES27_ARRAY]: "bytes27[]",
199
+ [SchemaType.BYTES28_ARRAY]: "bytes28[]",
200
+ [SchemaType.BYTES29_ARRAY]: "bytes29[]",
201
+ [SchemaType.BYTES30_ARRAY]: "bytes30[]",
202
+ [SchemaType.BYTES31_ARRAY]: "bytes31[]",
203
+ [SchemaType.BYTES32_ARRAY]: "bytes32[]",
204
+
205
+ [SchemaType.BOOL_ARRAY]: "bool[]",
206
+ [SchemaType.ADDRESS_ARRAY]: "address[]",
207
+
208
+ [SchemaType.BYTES]: "bytes",
209
+ [SchemaType.STRING]: "string",
210
+ } as const satisfies Record<SchemaType, string>;
@@ -0,0 +1,210 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+
3
+ export type SchemaTypeToPrimitive = {
4
+ [SchemaType.UINT8]: number;
5
+ [SchemaType.UINT16]: number;
6
+ [SchemaType.UINT24]: number;
7
+ [SchemaType.UINT32]: number;
8
+ [SchemaType.UINT40]: number;
9
+ [SchemaType.UINT48]: number;
10
+ [SchemaType.UINT56]: bigint;
11
+ [SchemaType.UINT64]: bigint;
12
+ [SchemaType.UINT72]: bigint;
13
+ [SchemaType.UINT80]: bigint;
14
+ [SchemaType.UINT88]: bigint;
15
+ [SchemaType.UINT96]: bigint;
16
+ [SchemaType.UINT104]: bigint;
17
+ [SchemaType.UINT112]: bigint;
18
+ [SchemaType.UINT120]: bigint;
19
+ [SchemaType.UINT128]: bigint;
20
+ [SchemaType.UINT136]: bigint;
21
+ [SchemaType.UINT144]: bigint;
22
+ [SchemaType.UINT152]: bigint;
23
+ [SchemaType.UINT160]: bigint;
24
+ [SchemaType.UINT168]: bigint;
25
+ [SchemaType.UINT176]: bigint;
26
+ [SchemaType.UINT184]: bigint;
27
+ [SchemaType.UINT192]: bigint;
28
+ [SchemaType.UINT200]: bigint;
29
+ [SchemaType.UINT208]: bigint;
30
+ [SchemaType.UINT216]: bigint;
31
+ [SchemaType.UINT224]: bigint;
32
+ [SchemaType.UINT232]: bigint;
33
+ [SchemaType.UINT240]: bigint;
34
+ [SchemaType.UINT248]: bigint;
35
+ [SchemaType.UINT256]: bigint;
36
+
37
+ [SchemaType.INT8]: number;
38
+ [SchemaType.INT16]: number;
39
+ [SchemaType.INT24]: number;
40
+ [SchemaType.INT32]: number;
41
+ [SchemaType.INT40]: number;
42
+ [SchemaType.INT48]: number;
43
+ [SchemaType.INT56]: bigint;
44
+ [SchemaType.INT64]: bigint;
45
+ [SchemaType.INT72]: bigint;
46
+ [SchemaType.INT80]: bigint;
47
+ [SchemaType.INT88]: bigint;
48
+ [SchemaType.INT96]: bigint;
49
+ [SchemaType.INT104]: bigint;
50
+ [SchemaType.INT112]: bigint;
51
+ [SchemaType.INT120]: bigint;
52
+ [SchemaType.INT128]: bigint;
53
+ [SchemaType.INT136]: bigint;
54
+ [SchemaType.INT144]: bigint;
55
+ [SchemaType.INT152]: bigint;
56
+ [SchemaType.INT160]: bigint;
57
+ [SchemaType.INT168]: bigint;
58
+ [SchemaType.INT176]: bigint;
59
+ [SchemaType.INT184]: bigint;
60
+ [SchemaType.INT192]: bigint;
61
+ [SchemaType.INT200]: bigint;
62
+ [SchemaType.INT208]: bigint;
63
+ [SchemaType.INT216]: bigint;
64
+ [SchemaType.INT224]: bigint;
65
+ [SchemaType.INT232]: bigint;
66
+ [SchemaType.INT240]: bigint;
67
+ [SchemaType.INT248]: bigint;
68
+ [SchemaType.INT256]: bigint;
69
+
70
+ [SchemaType.BYTES1]: string;
71
+ [SchemaType.BYTES2]: string;
72
+ [SchemaType.BYTES3]: string;
73
+ [SchemaType.BYTES4]: string;
74
+ [SchemaType.BYTES5]: string;
75
+ [SchemaType.BYTES6]: string;
76
+ [SchemaType.BYTES7]: string;
77
+ [SchemaType.BYTES8]: string;
78
+ [SchemaType.BYTES9]: string;
79
+ [SchemaType.BYTES10]: string;
80
+ [SchemaType.BYTES11]: string;
81
+ [SchemaType.BYTES12]: string;
82
+ [SchemaType.BYTES13]: string;
83
+ [SchemaType.BYTES14]: string;
84
+ [SchemaType.BYTES15]: string;
85
+ [SchemaType.BYTES16]: string;
86
+ [SchemaType.BYTES17]: string;
87
+ [SchemaType.BYTES18]: string;
88
+ [SchemaType.BYTES19]: string;
89
+ [SchemaType.BYTES20]: string;
90
+ [SchemaType.BYTES21]: string;
91
+ [SchemaType.BYTES22]: string;
92
+ [SchemaType.BYTES23]: string;
93
+ [SchemaType.BYTES24]: string;
94
+ [SchemaType.BYTES25]: string;
95
+ [SchemaType.BYTES26]: string;
96
+ [SchemaType.BYTES27]: string;
97
+ [SchemaType.BYTES28]: string;
98
+ [SchemaType.BYTES29]: string;
99
+ [SchemaType.BYTES30]: string;
100
+ [SchemaType.BYTES31]: string;
101
+ [SchemaType.BYTES32]: string;
102
+
103
+ [SchemaType.BOOL]: boolean;
104
+ [SchemaType.ADDRESS]: string;
105
+
106
+ [SchemaType.UINT8_ARRAY]: number[];
107
+ [SchemaType.UINT16_ARRAY]: number[];
108
+ [SchemaType.UINT24_ARRAY]: number[];
109
+ [SchemaType.UINT32_ARRAY]: number[];
110
+ [SchemaType.UINT40_ARRAY]: number[];
111
+ [SchemaType.UINT48_ARRAY]: number[];
112
+ [SchemaType.UINT56_ARRAY]: bigint[];
113
+ [SchemaType.UINT64_ARRAY]: bigint[];
114
+ [SchemaType.UINT72_ARRAY]: bigint[];
115
+ [SchemaType.UINT80_ARRAY]: bigint[];
116
+ [SchemaType.UINT88_ARRAY]: bigint[];
117
+ [SchemaType.UINT96_ARRAY]: bigint[];
118
+ [SchemaType.UINT104_ARRAY]: bigint[];
119
+ [SchemaType.UINT112_ARRAY]: bigint[];
120
+ [SchemaType.UINT120_ARRAY]: bigint[];
121
+ [SchemaType.UINT128_ARRAY]: bigint[];
122
+ [SchemaType.UINT136_ARRAY]: bigint[];
123
+ [SchemaType.UINT144_ARRAY]: bigint[];
124
+ [SchemaType.UINT152_ARRAY]: bigint[];
125
+ [SchemaType.UINT160_ARRAY]: bigint[];
126
+ [SchemaType.UINT168_ARRAY]: bigint[];
127
+ [SchemaType.UINT176_ARRAY]: bigint[];
128
+ [SchemaType.UINT184_ARRAY]: bigint[];
129
+ [SchemaType.UINT192_ARRAY]: bigint[];
130
+ [SchemaType.UINT200_ARRAY]: bigint[];
131
+ [SchemaType.UINT208_ARRAY]: bigint[];
132
+ [SchemaType.UINT216_ARRAY]: bigint[];
133
+ [SchemaType.UINT224_ARRAY]: bigint[];
134
+ [SchemaType.UINT232_ARRAY]: bigint[];
135
+ [SchemaType.UINT240_ARRAY]: bigint[];
136
+ [SchemaType.UINT248_ARRAY]: bigint[];
137
+ [SchemaType.UINT256_ARRAY]: bigint[];
138
+
139
+ [SchemaType.INT8_ARRAY]: number[];
140
+ [SchemaType.INT16_ARRAY]: number[];
141
+ [SchemaType.INT24_ARRAY]: number[];
142
+ [SchemaType.INT32_ARRAY]: number[];
143
+ [SchemaType.INT40_ARRAY]: number[];
144
+ [SchemaType.INT48_ARRAY]: number[];
145
+ [SchemaType.INT56_ARRAY]: bigint[];
146
+ [SchemaType.INT64_ARRAY]: bigint[];
147
+ [SchemaType.INT72_ARRAY]: bigint[];
148
+ [SchemaType.INT80_ARRAY]: bigint[];
149
+ [SchemaType.INT88_ARRAY]: bigint[];
150
+ [SchemaType.INT96_ARRAY]: bigint[];
151
+ [SchemaType.INT104_ARRAY]: bigint[];
152
+ [SchemaType.INT112_ARRAY]: bigint[];
153
+ [SchemaType.INT120_ARRAY]: bigint[];
154
+ [SchemaType.INT128_ARRAY]: bigint[];
155
+ [SchemaType.INT136_ARRAY]: bigint[];
156
+ [SchemaType.INT144_ARRAY]: bigint[];
157
+ [SchemaType.INT152_ARRAY]: bigint[];
158
+ [SchemaType.INT160_ARRAY]: bigint[];
159
+ [SchemaType.INT168_ARRAY]: bigint[];
160
+ [SchemaType.INT176_ARRAY]: bigint[];
161
+ [SchemaType.INT184_ARRAY]: bigint[];
162
+ [SchemaType.INT192_ARRAY]: bigint[];
163
+ [SchemaType.INT200_ARRAY]: bigint[];
164
+ [SchemaType.INT208_ARRAY]: bigint[];
165
+ [SchemaType.INT216_ARRAY]: bigint[];
166
+ [SchemaType.INT224_ARRAY]: bigint[];
167
+ [SchemaType.INT232_ARRAY]: bigint[];
168
+ [SchemaType.INT240_ARRAY]: bigint[];
169
+ [SchemaType.INT248_ARRAY]: bigint[];
170
+ [SchemaType.INT256_ARRAY]: bigint[];
171
+
172
+ [SchemaType.BYTES1_ARRAY]: string[];
173
+ [SchemaType.BYTES2_ARRAY]: string[];
174
+ [SchemaType.BYTES3_ARRAY]: string[];
175
+ [SchemaType.BYTES4_ARRAY]: string[];
176
+ [SchemaType.BYTES5_ARRAY]: string[];
177
+ [SchemaType.BYTES6_ARRAY]: string[];
178
+ [SchemaType.BYTES7_ARRAY]: string[];
179
+ [SchemaType.BYTES8_ARRAY]: string[];
180
+ [SchemaType.BYTES9_ARRAY]: string[];
181
+ [SchemaType.BYTES10_ARRAY]: string[];
182
+ [SchemaType.BYTES11_ARRAY]: string[];
183
+ [SchemaType.BYTES12_ARRAY]: string[];
184
+ [SchemaType.BYTES13_ARRAY]: string[];
185
+ [SchemaType.BYTES14_ARRAY]: string[];
186
+ [SchemaType.BYTES15_ARRAY]: string[];
187
+ [SchemaType.BYTES16_ARRAY]: string[];
188
+ [SchemaType.BYTES17_ARRAY]: string[];
189
+ [SchemaType.BYTES18_ARRAY]: string[];
190
+ [SchemaType.BYTES19_ARRAY]: string[];
191
+ [SchemaType.BYTES20_ARRAY]: string[];
192
+ [SchemaType.BYTES21_ARRAY]: string[];
193
+ [SchemaType.BYTES22_ARRAY]: string[];
194
+ [SchemaType.BYTES23_ARRAY]: string[];
195
+ [SchemaType.BYTES24_ARRAY]: string[];
196
+ [SchemaType.BYTES25_ARRAY]: string[];
197
+ [SchemaType.BYTES26_ARRAY]: string[];
198
+ [SchemaType.BYTES27_ARRAY]: string[];
199
+ [SchemaType.BYTES28_ARRAY]: string[];
200
+ [SchemaType.BYTES29_ARRAY]: string[];
201
+ [SchemaType.BYTES30_ARRAY]: string[];
202
+ [SchemaType.BYTES31_ARRAY]: string[];
203
+ [SchemaType.BYTES32_ARRAY]: string[];
204
+
205
+ [SchemaType.BOOL_ARRAY]: boolean[];
206
+ [SchemaType.ADDRESS_ARRAY]: string[];
207
+
208
+ [SchemaType.BYTES]: string;
209
+ [SchemaType.STRING]: string;
210
+ };
@@ -0,0 +1,10 @@
1
+ import { AbiTypes } from "./AbiTypes.js";
2
+ import { AbiTypeToSchemaType } from "./AbiTypeToSchemaType.js";
3
+ import { getStaticByteLength } from "./getStaticByteLength.js";
4
+ import { SchemaTypeToAbiType } from "./SchemaTypeToAbiType.js";
5
+ import { StaticSchemaType } from "./StaticSchemaType.js";
6
+
7
+ export type StaticAbiType = (typeof SchemaTypeToAbiType)[StaticSchemaType];
8
+ export const StaticAbiTypes = AbiTypes.filter(
9
+ (abiType) => getStaticByteLength(AbiTypeToSchemaType[abiType]) > 0
10
+ ) as StaticAbiType[];
@@ -0,0 +1,4 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+ import { DynamicSchemaType } from "./DynamicSchemaType.js";
3
+
4
+ export type StaticSchemaType = Exclude<SchemaType, DynamicSchemaType>;
@@ -0,0 +1,47 @@
1
+ import { getStaticByteLength } from "./getStaticByteLength.js";
2
+ import { SchemaType } from "./SchemaType.js";
3
+
4
+ /**
5
+ * Encode a table schema into a bytes32 hex string
6
+ * Port of `Schema.sol` from `@latticexyz/store`
7
+ * @param schema The schema to encode SchemaType[]
8
+ * @returns The encoded schema as a 32 byte hex string
9
+ */
10
+
11
+ export function encodeSchema(schema: SchemaType[]): Uint8Array {
12
+ if (schema.length > 28) throw new Error("Schema can only have up to 28 fields");
13
+ const encodedSchema = new Uint8Array(32);
14
+ let length = 0;
15
+ let staticFields = 0;
16
+
17
+ // Compute the length of the schema and the number of static fields
18
+ // and store the schema types in the encoded schema
19
+ let hasDynamicFields = false;
20
+ for (let i = 0; i < schema.length; i++) {
21
+ const staticByteLength = getStaticByteLength(schema[i]);
22
+
23
+ // Increase the static field count if the field is static
24
+ if (staticByteLength > 0) {
25
+ // Revert if we have seen a dynamic field before, but now we see a static field
26
+ if (hasDynamicFields) throw new Error("Static fields must come before dynamic fields in the schema");
27
+ staticFields++;
28
+ } else {
29
+ // Flag that we have seen a dynamic field
30
+ hasDynamicFields = true;
31
+ }
32
+
33
+ length += staticByteLength;
34
+ encodedSchema[i + 4] = schema[i];
35
+ }
36
+
37
+ // Require max 14 dynamic fields
38
+ const dynamicFields = schema.length - staticFields;
39
+ if (dynamicFields > 14) throw new Error("Schema can only have up to 14 dynamic fields");
40
+
41
+ // Store total static length, and number of static and dynamic fields
42
+ new DataView(encodedSchema.buffer).setUint16(0, length); // 2 length bytes
43
+ encodedSchema[2] = staticFields; // number of static fields
44
+ encodedSchema[3] = dynamicFields; // number of dynamic fields
45
+
46
+ return encodedSchema;
47
+ }
@@ -0,0 +1,25 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+
3
+ export function getStaticByteLength(schemaType: SchemaType) {
4
+ const val = schemaType.valueOf();
5
+ if (val < 32) {
6
+ // uint8-256
7
+ return val + 1;
8
+ } else if (val < 64) {
9
+ // int8-256, offset by 32
10
+ return val + 1 - 32;
11
+ } else if (val < 96) {
12
+ // bytes1-32, offset by 64
13
+ return val + 1 - 64;
14
+ }
15
+
16
+ // Other static types
17
+ if (schemaType == SchemaType.BOOL) {
18
+ return 1;
19
+ } else if (schemaType == SchemaType.ADDRESS) {
20
+ return 20;
21
+ }
22
+
23
+ // Return 0 for all dynamic types
24
+ return 0;
25
+ }
@@ -0,0 +1,15 @@
1
+ export type { StaticSchemaType } from "./StaticSchemaType.js";
2
+ export type { DynamicSchemaType } from "./DynamicSchemaType.js";
3
+ export type { ArraySchemaType } from "./ArraySchemaType.js";
4
+ export type { SchemaTypeToPrimitive } from "./SchemaTypeToPrimitive.js";
5
+ export type { AbiType } from "./AbiTypes.js";
6
+ export type { StaticAbiType } from "./StaticAbiTypes.js";
7
+
8
+ export { SchemaType } from "./SchemaType.js";
9
+ export { encodeSchema } from "./encodeSchema.js";
10
+ export { getStaticByteLength } from "./getStaticByteLength.js";
11
+ export { SchemaTypeArrayToElement } from "./SchemaTypeArrayToElement.js";
12
+ export { SchemaTypeToAbiType } from "./SchemaTypeToAbiType.js";
13
+ export { AbiTypeToSchemaType } from "./AbiTypeToSchemaType.js";
14
+ export { AbiTypes } from "./AbiTypes.js";
15
+ export { StaticAbiTypes } from "./StaticAbiTypes.js";