@latticexyz/schema-type 1.41.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.
- package/dist/typescript/AbiTypeToSchemaType.d.ts +4 -0
- package/dist/typescript/AbiTypeToSchemaType.js +3 -0
- package/dist/typescript/AbiTypeToSchemaType.js.map +1 -0
- package/dist/typescript/AbiTypes.d.ts +4 -0
- package/dist/typescript/AbiTypes.js +3 -0
- package/dist/typescript/AbiTypes.js.map +1 -0
- package/dist/typescript/ArraySchemaType.d.ts +2 -0
- package/dist/typescript/ArraySchemaType.js +2 -0
- package/dist/typescript/ArraySchemaType.js.map +1 -0
- package/dist/typescript/DynamicSchemaType.d.ts +3 -0
- package/dist/typescript/DynamicSchemaType.js +2 -0
- package/dist/typescript/DynamicSchemaType.js.map +1 -0
- package/dist/typescript/SchemaType.d.ts +0 -211
- package/dist/typescript/SchemaType.js +0 -365
- package/dist/typescript/SchemaType.js.map +1 -1
- package/dist/typescript/SchemaTypeArrayToElement.d.ts +201 -0
- package/dist/typescript/SchemaTypeArrayToElement.js +102 -0
- package/dist/typescript/SchemaTypeArrayToElement.js.map +1 -0
- package/dist/typescript/SchemaTypeId.d.ts +2 -0
- package/dist/typescript/SchemaTypeId.js +202 -0
- package/dist/typescript/SchemaTypeId.js.map +1 -0
- package/dist/typescript/SchemaTypeToAbiType.d.ts +200 -0
- package/dist/typescript/SchemaTypeToAbiType.js +202 -0
- package/dist/typescript/SchemaTypeToAbiType.js.map +1 -0
- package/dist/typescript/SchemaTypeToPrimitive.d.ts +201 -0
- package/dist/typescript/SchemaTypeToPrimitive.js +2 -0
- package/dist/typescript/SchemaTypeToPrimitive.js.map +1 -0
- package/dist/typescript/StaticAbiTypes.d.ts +4 -0
- package/dist/typescript/StaticAbiTypes.js +5 -0
- package/dist/typescript/StaticAbiTypes.js.map +1 -0
- package/dist/typescript/StaticSchemaType.d.ts +3 -0
- package/dist/typescript/StaticSchemaType.js +2 -0
- package/dist/typescript/StaticSchemaType.js.map +1 -0
- package/dist/typescript/encodeSchema.d.ts +8 -0
- package/dist/typescript/encodeSchema.js +43 -0
- package/dist/typescript/encodeSchema.js.map +1 -0
- package/dist/typescript/getStaticByteLength.d.ts +2 -0
- package/dist/typescript/getStaticByteLength.js +26 -0
- package/dist/typescript/getStaticByteLength.js.map +1 -0
- package/dist/typescript/index.d.ts +14 -0
- package/dist/typescript/index.js +9 -0
- package/dist/typescript/index.js.map +1 -0
- package/package.json +4 -4
- package/src/typescript/AbiTypeToSchemaType.ts +6 -0
- package/src/typescript/AbiTypes.ts +5 -0
- package/src/typescript/ArraySchemaType.ts +101 -0
- package/src/typescript/DynamicSchemaType.ts +4 -0
- package/src/typescript/SchemaType.ts +0 -485
- package/src/typescript/SchemaTypeArrayToElement.ts +109 -0
- package/src/typescript/SchemaTypeToAbiType.ts +210 -0
- package/src/typescript/SchemaTypeToPrimitive.ts +210 -0
- package/src/typescript/StaticAbiTypes.ts +10 -0
- package/src/typescript/StaticSchemaType.ts +4 -0
- package/src/typescript/encodeSchema.ts +47 -0
- package/src/typescript/getStaticByteLength.ts +25 -0
- 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,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";
|