@latticexyz/protocol-parser 2.0.0-next.14 → 2.0.0-next.15

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 (2) hide show
  1. package/dist/index.d.ts +129 -0
  2. package/package.json +3 -3
@@ -0,0 +1,129 @@
1
+ import { StaticAbiType, DynamicAbiType, SchemaAbiType, SchemaAbiTypeToPrimitiveType, DynamicAbiTypeToPrimitiveType, StaticPrimitiveType, DynamicPrimitiveType, StaticAbiTypeToPrimitiveType } from '@latticexyz/schema-type';
2
+ import { Hex } from 'viem';
3
+ import { AbiParameterToPrimitiveType } from 'abitype';
4
+ import { MUDError } from '@latticexyz/common/errors';
5
+
6
+ /** @deprecated use `KeySchema` or `ValueSchema` instead */
7
+ type Schema = {
8
+ readonly staticFields: readonly StaticAbiType[];
9
+ readonly dynamicFields: readonly DynamicAbiType[];
10
+ };
11
+ /** @deprecated use `KeySchema` and `ValueSchema` instead */
12
+ type TableSchema = {
13
+ readonly keySchema: Schema;
14
+ readonly valueSchema: Schema;
15
+ };
16
+ type FieldLayout = {
17
+ readonly staticFieldLengths: readonly number[];
18
+ readonly numDynamicFields: number;
19
+ };
20
+ type UserTypes = Record<string, {
21
+ internalType: SchemaAbiType;
22
+ }>;
23
+ type KeySchema<userTypes extends UserTypes | undefined = undefined> = Record<string, userTypes extends UserTypes ? StaticAbiType | keyof userTypes : StaticAbiType>;
24
+ type ValueSchema<userTypes extends UserTypes | undefined = undefined> = Record<string, userTypes extends UserTypes ? SchemaAbiType | keyof userTypes : SchemaAbiType>;
25
+ /** Map a table schema like `{ value: "uint256" }` to its primitive types like `{ value: bigint }` */
26
+ type SchemaToPrimitives<TSchema extends ValueSchema> = {
27
+ [key in keyof TSchema]: SchemaAbiTypeToPrimitiveType<TSchema[key]>;
28
+ };
29
+ type TableRecord<TKeySchema extends KeySchema = KeySchema, TValueSchema extends ValueSchema = ValueSchema> = {
30
+ key: SchemaToPrimitives<TKeySchema>;
31
+ value: SchemaToPrimitives<TValueSchema>;
32
+ };
33
+ type ValueArgs = {
34
+ staticData: Hex;
35
+ encodedLengths: Hex;
36
+ dynamicData: Hex;
37
+ };
38
+
39
+ declare function abiTypesToSchema(abiTypes: SchemaAbiType[]): Schema;
40
+
41
+ declare function decodeDynamicField<TAbiType extends DynamicAbiType, TPrimitiveType extends DynamicAbiTypeToPrimitiveType<TAbiType>>(abiType: TAbiType, data: Hex): TPrimitiveType;
42
+
43
+ declare function decodeField<TAbiType extends SchemaAbiType, TPrimitiveType extends SchemaAbiTypeToPrimitiveType<TAbiType>>(abiType: TAbiType, data: Hex): TPrimitiveType;
44
+
45
+ declare function decodeKey<TSchema extends KeySchema>(keySchema: TSchema, data: readonly Hex[]): SchemaToPrimitives<TSchema>;
46
+
47
+ /** @deprecated use `decodeKey` instead */
48
+ declare function decodeKeyTuple(keySchema: Schema, keyTuple: readonly Hex[]): StaticPrimitiveType[];
49
+
50
+ /** @deprecated use `decodeValue` instead */
51
+ declare function decodeRecord(valueSchema: Schema, data: Hex): readonly (StaticPrimitiveType | DynamicPrimitiveType)[];
52
+
53
+ declare function decodeStaticField<TAbiType extends StaticAbiType, TPrimitiveType extends StaticAbiTypeToPrimitiveType<TAbiType>>(abiType: TAbiType, data: Hex): TPrimitiveType;
54
+
55
+ declare function decodeValue<TSchema extends ValueSchema>(valueSchema: TSchema, data: Hex): SchemaToPrimitives<TSchema>;
56
+
57
+ declare function decodeValueArgs<TSchema extends ValueSchema>(valueSchema: TSchema, { staticData, encodedLengths, dynamicData }: ValueArgs): SchemaToPrimitives<TSchema>;
58
+
59
+ declare function encodeField<TSchemaAbiType extends SchemaAbiType>(fieldType: TSchemaAbiType, value: AbiParameterToPrimitiveType<{
60
+ type: TSchemaAbiType;
61
+ }>): Hex;
62
+
63
+ declare function encodeKey<TSchema extends KeySchema>(keySchema: TSchema, key: SchemaToPrimitives<TSchema>): Hex[];
64
+
65
+ /** @deprecated use `encodeKey` instead */
66
+ declare function encodeKeyTuple(keySchema: Schema, keyTuple: StaticPrimitiveType[]): Hex[];
67
+
68
+ /** @deprecated use `encodeValue` instead */
69
+ declare function encodeRecord(valueSchema: Schema, values: readonly (StaticPrimitiveType | DynamicPrimitiveType)[]): Hex;
70
+
71
+ declare function encodeValue<TSchema extends ValueSchema>(valueSchema: TSchema, value: SchemaToPrimitives<TSchema>): Hex;
72
+
73
+ declare function encodeValueArgs<TSchema extends ValueSchema>(valueSchema: TSchema, value: SchemaToPrimitives<TSchema>): ValueArgs;
74
+
75
+ declare class InvalidHexLengthError extends MUDError {
76
+ name: string;
77
+ constructor(value: Hex);
78
+ }
79
+ declare class InvalidHexLengthForSchemaError extends MUDError {
80
+ name: string;
81
+ constructor(value: Hex);
82
+ }
83
+ declare class InvalidHexLengthForPackedCounterError extends MUDError {
84
+ name: string;
85
+ constructor(value: Hex);
86
+ }
87
+ declare class InvalidHexLengthForStaticFieldError extends MUDError {
88
+ name: string;
89
+ constructor(abiType: StaticAbiType, value: Hex);
90
+ }
91
+ declare class InvalidHexLengthForArrayFieldError extends MUDError {
92
+ name: string;
93
+ constructor(abiType: StaticAbiType, value: Hex);
94
+ }
95
+ declare class SchemaStaticLengthMismatchError extends MUDError {
96
+ name: string;
97
+ constructor(schemaData: Hex, definedLength: number, summedLength: number);
98
+ }
99
+ declare class PackedCounterLengthMismatchError extends MUDError {
100
+ name: string;
101
+ constructor(packedCounterData: Hex, definedLength: bigint, summedLength: bigint);
102
+ }
103
+
104
+ /** @deprecated use `valueSchemaToFieldLayoutHex` instead */
105
+ declare function fieldLayoutToHex(fieldLayout: FieldLayout): Hex;
106
+
107
+ declare function hexToPackedCounter(data: Hex): {
108
+ totalByteLength: bigint;
109
+ fieldByteLengths: readonly number[];
110
+ };
111
+
112
+ declare function hexToSchema(data: Hex): Schema;
113
+
114
+ declare function hexToTableSchema(data: Hex): TableSchema;
115
+
116
+ declare function keySchemaToHex(keySchema: KeySchema): Hex;
117
+
118
+ declare function schemaIndexToAbiType(schema: Schema, schemaIndex: number): SchemaAbiType;
119
+
120
+ /** @deprecated use `keySchemaToHex` or `valueSchemaToHex` instead */
121
+ declare function schemaToHex(schema: Schema): Hex;
122
+
123
+ declare function staticDataLength(staticFields: readonly StaticAbiType[]): number;
124
+
125
+ declare function valueSchemaToFieldLayoutHex(valueSchema: ValueSchema): Hex;
126
+
127
+ declare function valueSchemaToHex(valueSchema: ValueSchema): Hex;
128
+
129
+ export { FieldLayout, InvalidHexLengthError, InvalidHexLengthForArrayFieldError, InvalidHexLengthForPackedCounterError, InvalidHexLengthForSchemaError, InvalidHexLengthForStaticFieldError, KeySchema, PackedCounterLengthMismatchError, Schema, SchemaStaticLengthMismatchError, SchemaToPrimitives, TableRecord, TableSchema, UserTypes, ValueArgs, ValueSchema, abiTypesToSchema, decodeDynamicField, decodeField, decodeKey, decodeKeyTuple, decodeRecord, decodeStaticField, decodeValue, decodeValueArgs, encodeField, encodeKey, encodeKeyTuple, encodeRecord, encodeValue, encodeValueArgs, fieldLayoutToHex, hexToPackedCounter, hexToSchema, hexToTableSchema, keySchemaToHex, schemaIndexToAbiType, schemaToHex, staticDataLength, valueSchemaToFieldLayoutHex, valueSchemaToHex };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/protocol-parser",
3
- "version": "2.0.0-next.14",
3
+ "version": "2.0.0-next.15",
4
4
  "description": "Parser utilities for the MUD protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,8 +16,8 @@
16
16
  "dependencies": {
17
17
  "abitype": "0.9.8",
18
18
  "viem": "1.14.0",
19
- "@latticexyz/common": "2.0.0-next.14",
20
- "@latticexyz/schema-type": "2.0.0-next.14"
19
+ "@latticexyz/common": "2.0.0-next.15",
20
+ "@latticexyz/schema-type": "2.0.0-next.15"
21
21
  },
22
22
  "devDependencies": {
23
23
  "tsup": "^6.7.0",