@latticexyz/schema-type 1.41.0 → 1.41.1-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 (53) hide show
  1. package/dist/typescript/AbiTypeToSchemaType.d.ts +4 -0
  2. package/dist/typescript/AbiTypeToSchemaType.js +3 -0
  3. package/dist/typescript/AbiTypeToSchemaType.js.map +1 -0
  4. package/dist/typescript/AbiTypes.d.ts +4 -0
  5. package/dist/typescript/AbiTypes.js +3 -0
  6. package/dist/typescript/AbiTypes.js.map +1 -0
  7. package/dist/typescript/ArraySchemaType.d.ts +2 -0
  8. package/dist/typescript/ArraySchemaType.js +2 -0
  9. package/dist/typescript/ArraySchemaType.js.map +1 -0
  10. package/dist/typescript/DynamicSchemaType.d.ts +3 -0
  11. package/dist/typescript/DynamicSchemaType.js +2 -0
  12. package/dist/typescript/DynamicSchemaType.js.map +1 -0
  13. package/dist/typescript/SchemaType.d.ts +0 -211
  14. package/dist/typescript/SchemaType.js +0 -365
  15. package/dist/typescript/SchemaType.js.map +1 -1
  16. package/dist/typescript/SchemaTypeArrayToElement.d.ts +201 -0
  17. package/dist/typescript/SchemaTypeArrayToElement.js +102 -0
  18. package/dist/typescript/SchemaTypeArrayToElement.js.map +1 -0
  19. package/dist/typescript/SchemaTypeToAbiType.d.ts +200 -0
  20. package/dist/typescript/SchemaTypeToAbiType.js +202 -0
  21. package/dist/typescript/SchemaTypeToAbiType.js.map +1 -0
  22. package/dist/typescript/SchemaTypeToPrimitive.d.ts +201 -0
  23. package/dist/typescript/SchemaTypeToPrimitive.js +2 -0
  24. package/dist/typescript/SchemaTypeToPrimitive.js.map +1 -0
  25. package/dist/typescript/StaticAbiTypes.d.ts +4 -0
  26. package/dist/typescript/StaticAbiTypes.js +5 -0
  27. package/dist/typescript/StaticAbiTypes.js.map +1 -0
  28. package/dist/typescript/StaticSchemaType.d.ts +3 -0
  29. package/dist/typescript/StaticSchemaType.js +2 -0
  30. package/dist/typescript/StaticSchemaType.js.map +1 -0
  31. package/dist/typescript/encodeSchema.d.ts +8 -0
  32. package/dist/typescript/encodeSchema.js +43 -0
  33. package/dist/typescript/encodeSchema.js.map +1 -0
  34. package/dist/typescript/getStaticByteLength.d.ts +2 -0
  35. package/dist/typescript/getStaticByteLength.js +26 -0
  36. package/dist/typescript/getStaticByteLength.js.map +1 -0
  37. package/dist/typescript/index.d.ts +14 -0
  38. package/dist/typescript/index.js +9 -0
  39. package/dist/typescript/index.js.map +1 -0
  40. package/package.json +4 -4
  41. package/src/typescript/AbiTypeToSchemaType.ts +6 -0
  42. package/src/typescript/AbiTypes.ts +5 -0
  43. package/src/typescript/ArraySchemaType.ts +101 -0
  44. package/src/typescript/DynamicSchemaType.ts +4 -0
  45. package/src/typescript/SchemaType.ts +0 -485
  46. package/src/typescript/SchemaTypeArrayToElement.ts +109 -0
  47. package/src/typescript/SchemaTypeToAbiType.ts +210 -0
  48. package/src/typescript/SchemaTypeToPrimitive.ts +210 -0
  49. package/src/typescript/StaticAbiTypes.ts +10 -0
  50. package/src/typescript/StaticSchemaType.ts +4 -0
  51. package/src/typescript/encodeSchema.ts +47 -0
  52. package/src/typescript/getStaticByteLength.ts +25 -0
  53. package/src/typescript/index.ts +15 -0
@@ -0,0 +1,101 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+
3
+ export type ArraySchemaType =
4
+ | SchemaType.UINT8_ARRAY
5
+ | SchemaType.UINT16_ARRAY
6
+ | SchemaType.UINT24_ARRAY
7
+ | SchemaType.UINT32_ARRAY
8
+ | SchemaType.UINT40_ARRAY
9
+ | SchemaType.UINT48_ARRAY
10
+ | SchemaType.UINT56_ARRAY
11
+ | SchemaType.UINT64_ARRAY
12
+ | SchemaType.UINT72_ARRAY
13
+ | SchemaType.UINT80_ARRAY
14
+ | SchemaType.UINT88_ARRAY
15
+ | SchemaType.UINT96_ARRAY
16
+ | SchemaType.UINT104_ARRAY
17
+ | SchemaType.UINT112_ARRAY
18
+ | SchemaType.UINT120_ARRAY
19
+ | SchemaType.UINT128_ARRAY
20
+ | SchemaType.UINT136_ARRAY
21
+ | SchemaType.UINT144_ARRAY
22
+ | SchemaType.UINT152_ARRAY
23
+ | SchemaType.UINT160_ARRAY
24
+ | SchemaType.UINT168_ARRAY
25
+ | SchemaType.UINT176_ARRAY
26
+ | SchemaType.UINT184_ARRAY
27
+ | SchemaType.UINT192_ARRAY
28
+ | SchemaType.UINT200_ARRAY
29
+ | SchemaType.UINT208_ARRAY
30
+ | SchemaType.UINT216_ARRAY
31
+ | SchemaType.UINT224_ARRAY
32
+ | SchemaType.UINT232_ARRAY
33
+ | SchemaType.UINT240_ARRAY
34
+ | SchemaType.UINT248_ARRAY
35
+ | SchemaType.UINT256_ARRAY
36
+ | SchemaType.INT8_ARRAY
37
+ | SchemaType.INT16_ARRAY
38
+ | SchemaType.INT24_ARRAY
39
+ | SchemaType.INT32_ARRAY
40
+ | SchemaType.INT40_ARRAY
41
+ | SchemaType.INT48_ARRAY
42
+ | SchemaType.INT56_ARRAY
43
+ | SchemaType.INT64_ARRAY
44
+ | SchemaType.INT72_ARRAY
45
+ | SchemaType.INT80_ARRAY
46
+ | SchemaType.INT88_ARRAY
47
+ | SchemaType.INT96_ARRAY
48
+ | SchemaType.INT104_ARRAY
49
+ | SchemaType.INT112_ARRAY
50
+ | SchemaType.INT120_ARRAY
51
+ | SchemaType.INT128_ARRAY
52
+ | SchemaType.INT136_ARRAY
53
+ | SchemaType.INT144_ARRAY
54
+ | SchemaType.INT152_ARRAY
55
+ | SchemaType.INT160_ARRAY
56
+ | SchemaType.INT168_ARRAY
57
+ | SchemaType.INT176_ARRAY
58
+ | SchemaType.INT184_ARRAY
59
+ | SchemaType.INT192_ARRAY
60
+ | SchemaType.INT200_ARRAY
61
+ | SchemaType.INT208_ARRAY
62
+ | SchemaType.INT216_ARRAY
63
+ | SchemaType.INT224_ARRAY
64
+ | SchemaType.INT232_ARRAY
65
+ | SchemaType.INT240_ARRAY
66
+ | SchemaType.INT248_ARRAY
67
+ | SchemaType.INT256_ARRAY
68
+ | SchemaType.BYTES1_ARRAY
69
+ | SchemaType.BYTES2_ARRAY
70
+ | SchemaType.BYTES3_ARRAY
71
+ | SchemaType.BYTES4_ARRAY
72
+ | SchemaType.BYTES5_ARRAY
73
+ | SchemaType.BYTES6_ARRAY
74
+ | SchemaType.BYTES7_ARRAY
75
+ | SchemaType.BYTES8_ARRAY
76
+ | SchemaType.BYTES9_ARRAY
77
+ | SchemaType.BYTES10_ARRAY
78
+ | SchemaType.BYTES11_ARRAY
79
+ | SchemaType.BYTES12_ARRAY
80
+ | SchemaType.BYTES13_ARRAY
81
+ | SchemaType.BYTES14_ARRAY
82
+ | SchemaType.BYTES15_ARRAY
83
+ | SchemaType.BYTES16_ARRAY
84
+ | SchemaType.BYTES17_ARRAY
85
+ | SchemaType.BYTES18_ARRAY
86
+ | SchemaType.BYTES19_ARRAY
87
+ | SchemaType.BYTES20_ARRAY
88
+ | SchemaType.BYTES21_ARRAY
89
+ | SchemaType.BYTES22_ARRAY
90
+ | SchemaType.BYTES23_ARRAY
91
+ | SchemaType.BYTES24_ARRAY
92
+ | SchemaType.BYTES25_ARRAY
93
+ | SchemaType.BYTES26_ARRAY
94
+ | SchemaType.BYTES27_ARRAY
95
+ | SchemaType.BYTES28_ARRAY
96
+ | SchemaType.BYTES29_ARRAY
97
+ | SchemaType.BYTES30_ARRAY
98
+ | SchemaType.BYTES31_ARRAY
99
+ | SchemaType.BYTES32_ARRAY
100
+ | SchemaType.BOOL_ARRAY
101
+ | SchemaType.ADDRESS_ARRAY;
@@ -0,0 +1,4 @@
1
+ import { SchemaType } from "./SchemaType.js";
2
+ import { ArraySchemaType } from "./ArraySchemaType.js";
3
+
4
+ export type DynamicSchemaType = ArraySchemaType | SchemaType.BYTES | SchemaType.STRING;
@@ -200,488 +200,3 @@ export enum SchemaType {
200
200
  BYTES,
201
201
  STRING,
202
202
  }
203
-
204
- export function getStaticByteLength(schemaType: SchemaType) {
205
- const val = schemaType.valueOf();
206
- if (val < 32) {
207
- // uint8-256
208
- return val + 1;
209
- } else if (val < 64) {
210
- // int8-256, offset by 32
211
- return val + 1 - 32;
212
- } else if (val < 96) {
213
- // bytes1-32, offset by 64
214
- return val + 1 - 64;
215
- }
216
-
217
- // Other static types
218
- if (schemaType == SchemaType.BOOL) {
219
- return 1;
220
- } else if (schemaType == SchemaType.ADDRESS) {
221
- return 20;
222
- }
223
-
224
- // Return 0 for all dynamic types
225
- return 0;
226
- }
227
-
228
- export const SchemaTypeId: Record<SchemaType, string> = {
229
- [SchemaType.UINT8]: "uint8",
230
- [SchemaType.UINT16]: "uint16",
231
- [SchemaType.UINT24]: "uint24",
232
- [SchemaType.UINT32]: "uint32",
233
- [SchemaType.UINT40]: "uint40",
234
- [SchemaType.UINT48]: "uint48",
235
- [SchemaType.UINT56]: "uint56",
236
- [SchemaType.UINT64]: "uint64",
237
- [SchemaType.UINT72]: "uint72",
238
- [SchemaType.UINT80]: "uint80",
239
- [SchemaType.UINT88]: "uint88",
240
- [SchemaType.UINT96]: "uint96",
241
- [SchemaType.UINT104]: "uint104",
242
- [SchemaType.UINT112]: "uint112",
243
- [SchemaType.UINT120]: "uint120",
244
- [SchemaType.UINT128]: "uint128",
245
- [SchemaType.UINT136]: "uint136",
246
- [SchemaType.UINT144]: "uint144",
247
- [SchemaType.UINT152]: "uint152",
248
- [SchemaType.UINT160]: "uint160",
249
- [SchemaType.UINT168]: "uint168",
250
- [SchemaType.UINT176]: "uint176",
251
- [SchemaType.UINT184]: "uint184",
252
- [SchemaType.UINT192]: "uint192",
253
- [SchemaType.UINT200]: "uint200",
254
- [SchemaType.UINT208]: "uint208",
255
- [SchemaType.UINT216]: "uint216",
256
- [SchemaType.UINT224]: "uint224",
257
- [SchemaType.UINT232]: "uint232",
258
- [SchemaType.UINT240]: "uint240",
259
- [SchemaType.UINT248]: "uint248",
260
- [SchemaType.UINT256]: "uint256",
261
-
262
- [SchemaType.INT8]: "int8",
263
- [SchemaType.INT16]: "int16",
264
- [SchemaType.INT24]: "int24",
265
- [SchemaType.INT32]: "int32",
266
- [SchemaType.INT40]: "int40",
267
- [SchemaType.INT48]: "int48",
268
- [SchemaType.INT56]: "int56",
269
- [SchemaType.INT64]: "int64",
270
- [SchemaType.INT72]: "int72",
271
- [SchemaType.INT80]: "int80",
272
- [SchemaType.INT88]: "int88",
273
- [SchemaType.INT96]: "int96",
274
- [SchemaType.INT104]: "int104",
275
- [SchemaType.INT112]: "int112",
276
- [SchemaType.INT120]: "int120",
277
- [SchemaType.INT128]: "int128",
278
- [SchemaType.INT136]: "int136",
279
- [SchemaType.INT144]: "int144",
280
- [SchemaType.INT152]: "int152",
281
- [SchemaType.INT160]: "int160",
282
- [SchemaType.INT168]: "int168",
283
- [SchemaType.INT176]: "int176",
284
- [SchemaType.INT184]: "int184",
285
- [SchemaType.INT192]: "int192",
286
- [SchemaType.INT200]: "int200",
287
- [SchemaType.INT208]: "int208",
288
- [SchemaType.INT216]: "int216",
289
- [SchemaType.INT224]: "int224",
290
- [SchemaType.INT232]: "int232",
291
- [SchemaType.INT240]: "int240",
292
- [SchemaType.INT248]: "int248",
293
- [SchemaType.INT256]: "int256",
294
-
295
- [SchemaType.BYTES1]: "bytes1",
296
- [SchemaType.BYTES2]: "bytes2",
297
- [SchemaType.BYTES3]: "bytes3",
298
- [SchemaType.BYTES4]: "bytes4",
299
- [SchemaType.BYTES5]: "bytes5",
300
- [SchemaType.BYTES6]: "bytes6",
301
- [SchemaType.BYTES7]: "bytes7",
302
- [SchemaType.BYTES8]: "bytes8",
303
- [SchemaType.BYTES9]: "bytes9",
304
- [SchemaType.BYTES10]: "bytes10",
305
- [SchemaType.BYTES11]: "bytes11",
306
- [SchemaType.BYTES12]: "bytes12",
307
- [SchemaType.BYTES13]: "bytes13",
308
- [SchemaType.BYTES14]: "bytes14",
309
- [SchemaType.BYTES15]: "bytes15",
310
- [SchemaType.BYTES16]: "bytes16",
311
- [SchemaType.BYTES17]: "bytes17",
312
- [SchemaType.BYTES18]: "bytes18",
313
- [SchemaType.BYTES19]: "bytes19",
314
- [SchemaType.BYTES20]: "bytes20",
315
- [SchemaType.BYTES21]: "bytes21",
316
- [SchemaType.BYTES22]: "bytes22",
317
- [SchemaType.BYTES23]: "bytes23",
318
- [SchemaType.BYTES24]: "bytes24",
319
- [SchemaType.BYTES25]: "bytes25",
320
- [SchemaType.BYTES26]: "bytes26",
321
- [SchemaType.BYTES27]: "bytes27",
322
- [SchemaType.BYTES28]: "bytes28",
323
- [SchemaType.BYTES29]: "bytes29",
324
- [SchemaType.BYTES30]: "bytes30",
325
- [SchemaType.BYTES31]: "bytes31",
326
- [SchemaType.BYTES32]: "bytes32",
327
-
328
- [SchemaType.BOOL]: "bool",
329
- [SchemaType.ADDRESS]: "address",
330
-
331
- [SchemaType.UINT8_ARRAY]: "uint8[]",
332
- [SchemaType.UINT16_ARRAY]: "uint16[]",
333
- [SchemaType.UINT24_ARRAY]: "uint24[]",
334
- [SchemaType.UINT32_ARRAY]: "uint32[]",
335
- [SchemaType.UINT40_ARRAY]: "uint40[]",
336
- [SchemaType.UINT48_ARRAY]: "uint48[]",
337
- [SchemaType.UINT56_ARRAY]: "uint56[]",
338
- [SchemaType.UINT64_ARRAY]: "uint64[]",
339
- [SchemaType.UINT72_ARRAY]: "uint72[]",
340
- [SchemaType.UINT80_ARRAY]: "uint80[]",
341
- [SchemaType.UINT88_ARRAY]: "uint88[]",
342
- [SchemaType.UINT96_ARRAY]: "uint96[]",
343
- [SchemaType.UINT104_ARRAY]: "uint104[]",
344
- [SchemaType.UINT112_ARRAY]: "uint112[]",
345
- [SchemaType.UINT120_ARRAY]: "uint120[]",
346
- [SchemaType.UINT128_ARRAY]: "uint128[]",
347
- [SchemaType.UINT136_ARRAY]: "uint136[]",
348
- [SchemaType.UINT144_ARRAY]: "uint144[]",
349
- [SchemaType.UINT152_ARRAY]: "uint152[]",
350
- [SchemaType.UINT160_ARRAY]: "uint160[]",
351
- [SchemaType.UINT168_ARRAY]: "uint168[]",
352
- [SchemaType.UINT176_ARRAY]: "uint176[]",
353
- [SchemaType.UINT184_ARRAY]: "uint184[]",
354
- [SchemaType.UINT192_ARRAY]: "uint192[]",
355
- [SchemaType.UINT200_ARRAY]: "uint200[]",
356
- [SchemaType.UINT208_ARRAY]: "uint208[]",
357
- [SchemaType.UINT216_ARRAY]: "uint216[]",
358
- [SchemaType.UINT224_ARRAY]: "uint224[]",
359
- [SchemaType.UINT232_ARRAY]: "uint232[]",
360
- [SchemaType.UINT240_ARRAY]: "uint240[]",
361
- [SchemaType.UINT248_ARRAY]: "uint248[]",
362
- [SchemaType.UINT256_ARRAY]: "uint256[]",
363
-
364
- [SchemaType.INT8_ARRAY]: "int8[]",
365
- [SchemaType.INT16_ARRAY]: "int16[]",
366
- [SchemaType.INT24_ARRAY]: "int24[]",
367
- [SchemaType.INT32_ARRAY]: "int32[]",
368
- [SchemaType.INT40_ARRAY]: "int40[]",
369
- [SchemaType.INT48_ARRAY]: "int48[]",
370
- [SchemaType.INT56_ARRAY]: "int56[]",
371
- [SchemaType.INT64_ARRAY]: "int64[]",
372
- [SchemaType.INT72_ARRAY]: "int72[]",
373
- [SchemaType.INT80_ARRAY]: "int80[]",
374
- [SchemaType.INT88_ARRAY]: "int88[]",
375
- [SchemaType.INT96_ARRAY]: "int96[]",
376
- [SchemaType.INT104_ARRAY]: "int104[]",
377
- [SchemaType.INT112_ARRAY]: "int112[]",
378
- [SchemaType.INT120_ARRAY]: "int120[]",
379
- [SchemaType.INT128_ARRAY]: "int128[]",
380
- [SchemaType.INT136_ARRAY]: "int136[]",
381
- [SchemaType.INT144_ARRAY]: "int144[]",
382
- [SchemaType.INT152_ARRAY]: "int152[]",
383
- [SchemaType.INT160_ARRAY]: "int160[]",
384
- [SchemaType.INT168_ARRAY]: "int168[]",
385
- [SchemaType.INT176_ARRAY]: "int176[]",
386
- [SchemaType.INT184_ARRAY]: "int184[]",
387
- [SchemaType.INT192_ARRAY]: "int192[]",
388
- [SchemaType.INT200_ARRAY]: "int200[]",
389
- [SchemaType.INT208_ARRAY]: "int208[]",
390
- [SchemaType.INT216_ARRAY]: "int216[]",
391
- [SchemaType.INT224_ARRAY]: "int224[]",
392
- [SchemaType.INT232_ARRAY]: "int232[]",
393
- [SchemaType.INT240_ARRAY]: "int240[]",
394
- [SchemaType.INT248_ARRAY]: "int248[]",
395
- [SchemaType.INT256_ARRAY]: "int256[]",
396
-
397
- [SchemaType.BYTES1_ARRAY]: "bytes1[]",
398
- [SchemaType.BYTES2_ARRAY]: "bytes2[]",
399
- [SchemaType.BYTES3_ARRAY]: "bytes3[]",
400
- [SchemaType.BYTES4_ARRAY]: "bytes4[]",
401
- [SchemaType.BYTES5_ARRAY]: "bytes5[]",
402
- [SchemaType.BYTES6_ARRAY]: "bytes6[]",
403
- [SchemaType.BYTES7_ARRAY]: "bytes7[]",
404
- [SchemaType.BYTES8_ARRAY]: "bytes8[]",
405
- [SchemaType.BYTES9_ARRAY]: "bytes9[]",
406
- [SchemaType.BYTES10_ARRAY]: "bytes10[]",
407
- [SchemaType.BYTES11_ARRAY]: "bytes11[]",
408
- [SchemaType.BYTES12_ARRAY]: "bytes12[]",
409
- [SchemaType.BYTES13_ARRAY]: "bytes13[]",
410
- [SchemaType.BYTES14_ARRAY]: "bytes14[]",
411
- [SchemaType.BYTES15_ARRAY]: "bytes15[]",
412
- [SchemaType.BYTES16_ARRAY]: "bytes16[]",
413
- [SchemaType.BYTES17_ARRAY]: "bytes17[]",
414
- [SchemaType.BYTES18_ARRAY]: "bytes18[]",
415
- [SchemaType.BYTES19_ARRAY]: "bytes19[]",
416
- [SchemaType.BYTES20_ARRAY]: "bytes20[]",
417
- [SchemaType.BYTES21_ARRAY]: "bytes21[]",
418
- [SchemaType.BYTES22_ARRAY]: "bytes22[]",
419
- [SchemaType.BYTES23_ARRAY]: "bytes23[]",
420
- [SchemaType.BYTES24_ARRAY]: "bytes24[]",
421
- [SchemaType.BYTES25_ARRAY]: "bytes25[]",
422
- [SchemaType.BYTES26_ARRAY]: "bytes26[]",
423
- [SchemaType.BYTES27_ARRAY]: "bytes27[]",
424
- [SchemaType.BYTES28_ARRAY]: "bytes28[]",
425
- [SchemaType.BYTES29_ARRAY]: "bytes29[]",
426
- [SchemaType.BYTES30_ARRAY]: "bytes30[]",
427
- [SchemaType.BYTES31_ARRAY]: "bytes31[]",
428
- [SchemaType.BYTES32_ARRAY]: "bytes32[]",
429
-
430
- [SchemaType.BOOL_ARRAY]: "bool[]",
431
- [SchemaType.ADDRESS_ARRAY]: "address[]",
432
-
433
- [SchemaType.BYTES]: "bytes",
434
- [SchemaType.STRING]: "string",
435
- };
436
-
437
- export type ArraySchemaType =
438
- | SchemaType.UINT8_ARRAY
439
- | SchemaType.UINT16_ARRAY
440
- | SchemaType.UINT24_ARRAY
441
- | SchemaType.UINT32_ARRAY
442
- | SchemaType.UINT40_ARRAY
443
- | SchemaType.UINT48_ARRAY
444
- | SchemaType.UINT56_ARRAY
445
- | SchemaType.UINT64_ARRAY
446
- | SchemaType.UINT72_ARRAY
447
- | SchemaType.UINT80_ARRAY
448
- | SchemaType.UINT88_ARRAY
449
- | SchemaType.UINT96_ARRAY
450
- | SchemaType.UINT104_ARRAY
451
- | SchemaType.UINT112_ARRAY
452
- | SchemaType.UINT120_ARRAY
453
- | SchemaType.UINT128_ARRAY
454
- | SchemaType.UINT136_ARRAY
455
- | SchemaType.UINT144_ARRAY
456
- | SchemaType.UINT152_ARRAY
457
- | SchemaType.UINT160_ARRAY
458
- | SchemaType.UINT168_ARRAY
459
- | SchemaType.UINT176_ARRAY
460
- | SchemaType.UINT184_ARRAY
461
- | SchemaType.UINT192_ARRAY
462
- | SchemaType.UINT200_ARRAY
463
- | SchemaType.UINT208_ARRAY
464
- | SchemaType.UINT216_ARRAY
465
- | SchemaType.UINT224_ARRAY
466
- | SchemaType.UINT232_ARRAY
467
- | SchemaType.UINT240_ARRAY
468
- | SchemaType.UINT248_ARRAY
469
- | SchemaType.UINT256_ARRAY
470
- | SchemaType.INT8_ARRAY
471
- | SchemaType.INT16_ARRAY
472
- | SchemaType.INT24_ARRAY
473
- | SchemaType.INT32_ARRAY
474
- | SchemaType.INT40_ARRAY
475
- | SchemaType.INT48_ARRAY
476
- | SchemaType.INT56_ARRAY
477
- | SchemaType.INT64_ARRAY
478
- | SchemaType.INT72_ARRAY
479
- | SchemaType.INT80_ARRAY
480
- | SchemaType.INT88_ARRAY
481
- | SchemaType.INT96_ARRAY
482
- | SchemaType.INT104_ARRAY
483
- | SchemaType.INT112_ARRAY
484
- | SchemaType.INT120_ARRAY
485
- | SchemaType.INT128_ARRAY
486
- | SchemaType.INT136_ARRAY
487
- | SchemaType.INT144_ARRAY
488
- | SchemaType.INT152_ARRAY
489
- | SchemaType.INT160_ARRAY
490
- | SchemaType.INT168_ARRAY
491
- | SchemaType.INT176_ARRAY
492
- | SchemaType.INT184_ARRAY
493
- | SchemaType.INT192_ARRAY
494
- | SchemaType.INT200_ARRAY
495
- | SchemaType.INT208_ARRAY
496
- | SchemaType.INT216_ARRAY
497
- | SchemaType.INT224_ARRAY
498
- | SchemaType.INT232_ARRAY
499
- | SchemaType.INT240_ARRAY
500
- | SchemaType.INT248_ARRAY
501
- | SchemaType.INT256_ARRAY
502
- | SchemaType.BYTES1_ARRAY
503
- | SchemaType.BYTES2_ARRAY
504
- | SchemaType.BYTES3_ARRAY
505
- | SchemaType.BYTES4_ARRAY
506
- | SchemaType.BYTES5_ARRAY
507
- | SchemaType.BYTES6_ARRAY
508
- | SchemaType.BYTES7_ARRAY
509
- | SchemaType.BYTES8_ARRAY
510
- | SchemaType.BYTES9_ARRAY
511
- | SchemaType.BYTES10_ARRAY
512
- | SchemaType.BYTES11_ARRAY
513
- | SchemaType.BYTES12_ARRAY
514
- | SchemaType.BYTES13_ARRAY
515
- | SchemaType.BYTES14_ARRAY
516
- | SchemaType.BYTES15_ARRAY
517
- | SchemaType.BYTES16_ARRAY
518
- | SchemaType.BYTES17_ARRAY
519
- | SchemaType.BYTES18_ARRAY
520
- | SchemaType.BYTES19_ARRAY
521
- | SchemaType.BYTES20_ARRAY
522
- | SchemaType.BYTES21_ARRAY
523
- | SchemaType.BYTES22_ARRAY
524
- | SchemaType.BYTES23_ARRAY
525
- | SchemaType.BYTES24_ARRAY
526
- | SchemaType.BYTES25_ARRAY
527
- | SchemaType.BYTES26_ARRAY
528
- | SchemaType.BYTES27_ARRAY
529
- | SchemaType.BYTES28_ARRAY
530
- | SchemaType.BYTES29_ARRAY
531
- | SchemaType.BYTES30_ARRAY
532
- | SchemaType.BYTES31_ARRAY
533
- | SchemaType.BYTES32_ARRAY
534
- | SchemaType.BOOL_ARRAY
535
- | SchemaType.ADDRESS_ARRAY;
536
-
537
- export const SchemaTypeArrayToElement = {
538
- [SchemaType.UINT8_ARRAY]: SchemaType.UINT8,
539
- [SchemaType.UINT16_ARRAY]: SchemaType.UINT16,
540
- [SchemaType.UINT24_ARRAY]: SchemaType.UINT24,
541
- [SchemaType.UINT32_ARRAY]: SchemaType.UINT32,
542
- [SchemaType.UINT40_ARRAY]: SchemaType.UINT40,
543
- [SchemaType.UINT48_ARRAY]: SchemaType.UINT48,
544
- [SchemaType.UINT56_ARRAY]: SchemaType.UINT56,
545
- [SchemaType.UINT64_ARRAY]: SchemaType.UINT64,
546
- [SchemaType.UINT72_ARRAY]: SchemaType.UINT72,
547
- [SchemaType.UINT80_ARRAY]: SchemaType.UINT80,
548
- [SchemaType.UINT88_ARRAY]: SchemaType.UINT88,
549
- [SchemaType.UINT96_ARRAY]: SchemaType.UINT96,
550
- [SchemaType.UINT104_ARRAY]: SchemaType.UINT104,
551
- [SchemaType.UINT112_ARRAY]: SchemaType.UINT112,
552
- [SchemaType.UINT120_ARRAY]: SchemaType.UINT120,
553
- [SchemaType.UINT128_ARRAY]: SchemaType.UINT128,
554
- [SchemaType.UINT136_ARRAY]: SchemaType.UINT136,
555
- [SchemaType.UINT144_ARRAY]: SchemaType.UINT144,
556
- [SchemaType.UINT152_ARRAY]: SchemaType.UINT152,
557
- [SchemaType.UINT160_ARRAY]: SchemaType.UINT160,
558
- [SchemaType.UINT168_ARRAY]: SchemaType.UINT168,
559
- [SchemaType.UINT176_ARRAY]: SchemaType.UINT176,
560
- [SchemaType.UINT184_ARRAY]: SchemaType.UINT184,
561
- [SchemaType.UINT192_ARRAY]: SchemaType.UINT192,
562
- [SchemaType.UINT200_ARRAY]: SchemaType.UINT200,
563
- [SchemaType.UINT208_ARRAY]: SchemaType.UINT208,
564
- [SchemaType.UINT216_ARRAY]: SchemaType.UINT216,
565
- [SchemaType.UINT224_ARRAY]: SchemaType.UINT224,
566
- [SchemaType.UINT232_ARRAY]: SchemaType.UINT232,
567
- [SchemaType.UINT240_ARRAY]: SchemaType.UINT240,
568
- [SchemaType.UINT248_ARRAY]: SchemaType.UINT248,
569
- [SchemaType.UINT256_ARRAY]: SchemaType.UINT256,
570
-
571
- [SchemaType.INT8_ARRAY]: SchemaType.INT8,
572
- [SchemaType.INT16_ARRAY]: SchemaType.INT16,
573
- [SchemaType.INT24_ARRAY]: SchemaType.INT24,
574
- [SchemaType.INT32_ARRAY]: SchemaType.INT32,
575
- [SchemaType.INT40_ARRAY]: SchemaType.INT40,
576
- [SchemaType.INT48_ARRAY]: SchemaType.INT48,
577
- [SchemaType.INT56_ARRAY]: SchemaType.INT56,
578
- [SchemaType.INT64_ARRAY]: SchemaType.INT64,
579
- [SchemaType.INT72_ARRAY]: SchemaType.INT72,
580
- [SchemaType.INT80_ARRAY]: SchemaType.INT80,
581
- [SchemaType.INT88_ARRAY]: SchemaType.INT88,
582
- [SchemaType.INT96_ARRAY]: SchemaType.INT96,
583
- [SchemaType.INT104_ARRAY]: SchemaType.INT104,
584
- [SchemaType.INT112_ARRAY]: SchemaType.INT112,
585
- [SchemaType.INT120_ARRAY]: SchemaType.INT120,
586
- [SchemaType.INT128_ARRAY]: SchemaType.INT128,
587
- [SchemaType.INT136_ARRAY]: SchemaType.INT136,
588
- [SchemaType.INT144_ARRAY]: SchemaType.INT144,
589
- [SchemaType.INT152_ARRAY]: SchemaType.INT152,
590
- [SchemaType.INT160_ARRAY]: SchemaType.INT160,
591
- [SchemaType.INT168_ARRAY]: SchemaType.INT168,
592
- [SchemaType.INT176_ARRAY]: SchemaType.INT176,
593
- [SchemaType.INT184_ARRAY]: SchemaType.INT184,
594
- [SchemaType.INT192_ARRAY]: SchemaType.INT192,
595
- [SchemaType.INT200_ARRAY]: SchemaType.INT200,
596
- [SchemaType.INT208_ARRAY]: SchemaType.INT208,
597
- [SchemaType.INT216_ARRAY]: SchemaType.INT216,
598
- [SchemaType.INT224_ARRAY]: SchemaType.INT224,
599
- [SchemaType.INT232_ARRAY]: SchemaType.INT232,
600
- [SchemaType.INT240_ARRAY]: SchemaType.INT240,
601
- [SchemaType.INT248_ARRAY]: SchemaType.INT248,
602
- [SchemaType.INT256_ARRAY]: SchemaType.INT256,
603
-
604
- [SchemaType.BYTES1_ARRAY]: SchemaType.BYTES1,
605
- [SchemaType.BYTES2_ARRAY]: SchemaType.BYTES2,
606
- [SchemaType.BYTES3_ARRAY]: SchemaType.BYTES3,
607
- [SchemaType.BYTES4_ARRAY]: SchemaType.BYTES4,
608
- [SchemaType.BYTES5_ARRAY]: SchemaType.BYTES5,
609
- [SchemaType.BYTES6_ARRAY]: SchemaType.BYTES6,
610
- [SchemaType.BYTES7_ARRAY]: SchemaType.BYTES7,
611
- [SchemaType.BYTES8_ARRAY]: SchemaType.BYTES8,
612
- [SchemaType.BYTES9_ARRAY]: SchemaType.BYTES9,
613
- [SchemaType.BYTES10_ARRAY]: SchemaType.BYTES10,
614
- [SchemaType.BYTES11_ARRAY]: SchemaType.BYTES11,
615
- [SchemaType.BYTES12_ARRAY]: SchemaType.BYTES12,
616
- [SchemaType.BYTES13_ARRAY]: SchemaType.BYTES13,
617
- [SchemaType.BYTES14_ARRAY]: SchemaType.BYTES14,
618
- [SchemaType.BYTES15_ARRAY]: SchemaType.BYTES15,
619
- [SchemaType.BYTES16_ARRAY]: SchemaType.BYTES16,
620
- [SchemaType.BYTES17_ARRAY]: SchemaType.BYTES17,
621
- [SchemaType.BYTES18_ARRAY]: SchemaType.BYTES18,
622
- [SchemaType.BYTES19_ARRAY]: SchemaType.BYTES19,
623
- [SchemaType.BYTES20_ARRAY]: SchemaType.BYTES20,
624
- [SchemaType.BYTES21_ARRAY]: SchemaType.BYTES21,
625
- [SchemaType.BYTES22_ARRAY]: SchemaType.BYTES22,
626
- [SchemaType.BYTES23_ARRAY]: SchemaType.BYTES23,
627
- [SchemaType.BYTES24_ARRAY]: SchemaType.BYTES24,
628
- [SchemaType.BYTES25_ARRAY]: SchemaType.BYTES25,
629
- [SchemaType.BYTES26_ARRAY]: SchemaType.BYTES26,
630
- [SchemaType.BYTES27_ARRAY]: SchemaType.BYTES27,
631
- [SchemaType.BYTES28_ARRAY]: SchemaType.BYTES28,
632
- [SchemaType.BYTES29_ARRAY]: SchemaType.BYTES29,
633
- [SchemaType.BYTES30_ARRAY]: SchemaType.BYTES30,
634
- [SchemaType.BYTES31_ARRAY]: SchemaType.BYTES31,
635
- [SchemaType.BYTES32_ARRAY]: SchemaType.BYTES32,
636
-
637
- [SchemaType.BOOL_ARRAY]: SchemaType.BOOL,
638
- [SchemaType.ADDRESS_ARRAY]: SchemaType.ADDRESS,
639
- } as {
640
- [K in SchemaType]: K extends ArraySchemaType ? SchemaType : undefined;
641
- };
642
-
643
- export type DynamicSchemaType = ArraySchemaType | SchemaType.BYTES | SchemaType.STRING;
644
-
645
- /**
646
- * Encode a table schema into a bytes32 hex string
647
- * Port of `Schema.sol` from `@latticexyz/store`
648
- * @param schema The schema to encode SchemaType[]
649
- * @returns The encoded schema as a 32 byte hex string
650
- */
651
- export function encodeSchema(schema: SchemaType[]): Uint8Array {
652
- if (schema.length > 28) throw new Error("Schema can only have up to 28 fields");
653
- const encodedSchema = new Uint8Array(32);
654
- let length = 0;
655
- let staticFields = 0;
656
-
657
- // Compute the length of the schema and the number of static fields
658
- // and store the schema types in the encoded schema
659
- let hasDynamicFields = false;
660
- for (let i = 0; i < schema.length; i++) {
661
- const staticByteLength = getStaticByteLength(schema[i]);
662
-
663
- // Increase the static field count if the field is static
664
- if (staticByteLength > 0) {
665
- // Revert if we have seen a dynamic field before, but now we see a static field
666
- if (hasDynamicFields) throw new Error("Static fields must come before dynamic fields in the schema");
667
- staticFields++;
668
- } else {
669
- // Flag that we have seen a dynamic field
670
- hasDynamicFields = true;
671
- }
672
-
673
- length += staticByteLength;
674
- encodedSchema[i + 4] = schema[i];
675
- }
676
-
677
- // Require max 14 dynamic fields
678
- const dynamicFields = schema.length - staticFields;
679
- if (dynamicFields > 14) throw new Error("Schema can only have up to 14 dynamic fields");
680
-
681
- // Store total static length, and number of static and dynamic fields
682
- new DataView(encodedSchema.buffer).setUint16(0, length); // 2 length bytes
683
- encodedSchema[2] = staticFields; // number of static fields
684
- encodedSchema[3] = dynamicFields; // number of dynamic fields
685
-
686
- return encodedSchema;
687
- }
@@ -0,0 +1,109 @@
1
+ import { StaticSchemaType } from "./StaticSchemaType.js";
2
+ import { ArraySchemaType } from "./ArraySchemaType.js";
3
+ import { SchemaType } from "./SchemaType.js";
4
+
5
+ export const SchemaTypeArrayToElement = {
6
+ [SchemaType.UINT8_ARRAY]: SchemaType.UINT8,
7
+ [SchemaType.UINT16_ARRAY]: SchemaType.UINT16,
8
+ [SchemaType.UINT24_ARRAY]: SchemaType.UINT24,
9
+ [SchemaType.UINT32_ARRAY]: SchemaType.UINT32,
10
+ [SchemaType.UINT40_ARRAY]: SchemaType.UINT40,
11
+ [SchemaType.UINT48_ARRAY]: SchemaType.UINT48,
12
+ [SchemaType.UINT56_ARRAY]: SchemaType.UINT56,
13
+ [SchemaType.UINT64_ARRAY]: SchemaType.UINT64,
14
+ [SchemaType.UINT72_ARRAY]: SchemaType.UINT72,
15
+ [SchemaType.UINT80_ARRAY]: SchemaType.UINT80,
16
+ [SchemaType.UINT88_ARRAY]: SchemaType.UINT88,
17
+ [SchemaType.UINT96_ARRAY]: SchemaType.UINT96,
18
+ [SchemaType.UINT104_ARRAY]: SchemaType.UINT104,
19
+ [SchemaType.UINT112_ARRAY]: SchemaType.UINT112,
20
+ [SchemaType.UINT120_ARRAY]: SchemaType.UINT120,
21
+ [SchemaType.UINT128_ARRAY]: SchemaType.UINT128,
22
+ [SchemaType.UINT136_ARRAY]: SchemaType.UINT136,
23
+ [SchemaType.UINT144_ARRAY]: SchemaType.UINT144,
24
+ [SchemaType.UINT152_ARRAY]: SchemaType.UINT152,
25
+ [SchemaType.UINT160_ARRAY]: SchemaType.UINT160,
26
+ [SchemaType.UINT168_ARRAY]: SchemaType.UINT168,
27
+ [SchemaType.UINT176_ARRAY]: SchemaType.UINT176,
28
+ [SchemaType.UINT184_ARRAY]: SchemaType.UINT184,
29
+ [SchemaType.UINT192_ARRAY]: SchemaType.UINT192,
30
+ [SchemaType.UINT200_ARRAY]: SchemaType.UINT200,
31
+ [SchemaType.UINT208_ARRAY]: SchemaType.UINT208,
32
+ [SchemaType.UINT216_ARRAY]: SchemaType.UINT216,
33
+ [SchemaType.UINT224_ARRAY]: SchemaType.UINT224,
34
+ [SchemaType.UINT232_ARRAY]: SchemaType.UINT232,
35
+ [SchemaType.UINT240_ARRAY]: SchemaType.UINT240,
36
+ [SchemaType.UINT248_ARRAY]: SchemaType.UINT248,
37
+ [SchemaType.UINT256_ARRAY]: SchemaType.UINT256,
38
+
39
+ [SchemaType.INT8_ARRAY]: SchemaType.INT8,
40
+ [SchemaType.INT16_ARRAY]: SchemaType.INT16,
41
+ [SchemaType.INT24_ARRAY]: SchemaType.INT24,
42
+ [SchemaType.INT32_ARRAY]: SchemaType.INT32,
43
+ [SchemaType.INT40_ARRAY]: SchemaType.INT40,
44
+ [SchemaType.INT48_ARRAY]: SchemaType.INT48,
45
+ [SchemaType.INT56_ARRAY]: SchemaType.INT56,
46
+ [SchemaType.INT64_ARRAY]: SchemaType.INT64,
47
+ [SchemaType.INT72_ARRAY]: SchemaType.INT72,
48
+ [SchemaType.INT80_ARRAY]: SchemaType.INT80,
49
+ [SchemaType.INT88_ARRAY]: SchemaType.INT88,
50
+ [SchemaType.INT96_ARRAY]: SchemaType.INT96,
51
+ [SchemaType.INT104_ARRAY]: SchemaType.INT104,
52
+ [SchemaType.INT112_ARRAY]: SchemaType.INT112,
53
+ [SchemaType.INT120_ARRAY]: SchemaType.INT120,
54
+ [SchemaType.INT128_ARRAY]: SchemaType.INT128,
55
+ [SchemaType.INT136_ARRAY]: SchemaType.INT136,
56
+ [SchemaType.INT144_ARRAY]: SchemaType.INT144,
57
+ [SchemaType.INT152_ARRAY]: SchemaType.INT152,
58
+ [SchemaType.INT160_ARRAY]: SchemaType.INT160,
59
+ [SchemaType.INT168_ARRAY]: SchemaType.INT168,
60
+ [SchemaType.INT176_ARRAY]: SchemaType.INT176,
61
+ [SchemaType.INT184_ARRAY]: SchemaType.INT184,
62
+ [SchemaType.INT192_ARRAY]: SchemaType.INT192,
63
+ [SchemaType.INT200_ARRAY]: SchemaType.INT200,
64
+ [SchemaType.INT208_ARRAY]: SchemaType.INT208,
65
+ [SchemaType.INT216_ARRAY]: SchemaType.INT216,
66
+ [SchemaType.INT224_ARRAY]: SchemaType.INT224,
67
+ [SchemaType.INT232_ARRAY]: SchemaType.INT232,
68
+ [SchemaType.INT240_ARRAY]: SchemaType.INT240,
69
+ [SchemaType.INT248_ARRAY]: SchemaType.INT248,
70
+ [SchemaType.INT256_ARRAY]: SchemaType.INT256,
71
+
72
+ [SchemaType.BYTES1_ARRAY]: SchemaType.BYTES1,
73
+ [SchemaType.BYTES2_ARRAY]: SchemaType.BYTES2,
74
+ [SchemaType.BYTES3_ARRAY]: SchemaType.BYTES3,
75
+ [SchemaType.BYTES4_ARRAY]: SchemaType.BYTES4,
76
+ [SchemaType.BYTES5_ARRAY]: SchemaType.BYTES5,
77
+ [SchemaType.BYTES6_ARRAY]: SchemaType.BYTES6,
78
+ [SchemaType.BYTES7_ARRAY]: SchemaType.BYTES7,
79
+ [SchemaType.BYTES8_ARRAY]: SchemaType.BYTES8,
80
+ [SchemaType.BYTES9_ARRAY]: SchemaType.BYTES9,
81
+ [SchemaType.BYTES10_ARRAY]: SchemaType.BYTES10,
82
+ [SchemaType.BYTES11_ARRAY]: SchemaType.BYTES11,
83
+ [SchemaType.BYTES12_ARRAY]: SchemaType.BYTES12,
84
+ [SchemaType.BYTES13_ARRAY]: SchemaType.BYTES13,
85
+ [SchemaType.BYTES14_ARRAY]: SchemaType.BYTES14,
86
+ [SchemaType.BYTES15_ARRAY]: SchemaType.BYTES15,
87
+ [SchemaType.BYTES16_ARRAY]: SchemaType.BYTES16,
88
+ [SchemaType.BYTES17_ARRAY]: SchemaType.BYTES17,
89
+ [SchemaType.BYTES18_ARRAY]: SchemaType.BYTES18,
90
+ [SchemaType.BYTES19_ARRAY]: SchemaType.BYTES19,
91
+ [SchemaType.BYTES20_ARRAY]: SchemaType.BYTES20,
92
+ [SchemaType.BYTES21_ARRAY]: SchemaType.BYTES21,
93
+ [SchemaType.BYTES22_ARRAY]: SchemaType.BYTES22,
94
+ [SchemaType.BYTES23_ARRAY]: SchemaType.BYTES23,
95
+ [SchemaType.BYTES24_ARRAY]: SchemaType.BYTES24,
96
+ [SchemaType.BYTES25_ARRAY]: SchemaType.BYTES25,
97
+ [SchemaType.BYTES26_ARRAY]: SchemaType.BYTES26,
98
+ [SchemaType.BYTES27_ARRAY]: SchemaType.BYTES27,
99
+ [SchemaType.BYTES28_ARRAY]: SchemaType.BYTES28,
100
+ [SchemaType.BYTES29_ARRAY]: SchemaType.BYTES29,
101
+ [SchemaType.BYTES30_ARRAY]: SchemaType.BYTES30,
102
+ [SchemaType.BYTES31_ARRAY]: SchemaType.BYTES31,
103
+ [SchemaType.BYTES32_ARRAY]: SchemaType.BYTES32,
104
+
105
+ [SchemaType.BOOL_ARRAY]: SchemaType.BOOL,
106
+ [SchemaType.ADDRESS_ARRAY]: SchemaType.ADDRESS,
107
+ } as {
108
+ [K in SchemaType]: K extends ArraySchemaType ? StaticSchemaType : undefined;
109
+ };