@subsquid/evm-codec 0.2.0 → 0.3.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/lib/codec.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  import type { Sink } from './sink';
2
2
  import type { Src } from './src';
3
3
  export declare const WORD_SIZE = 32;
4
+ export type BaseType = 'int' | 'address' | 'bool' | 'bytes' | 'string' | 'array' | 'struct';
4
5
  export interface Codec<TIn, TOut = TIn> {
5
6
  encode(sink: Sink, val: TIn): void;
6
7
  decode(src: Src): TOut;
7
8
  isDynamic: boolean;
8
9
  slotsCount?: number;
10
+ baseType: BaseType;
9
11
  }
10
12
  export type Struct = {
11
13
  [key: string]: Codec<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;IACpC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;CAC1B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,OAAO,CAAA;AAEnD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAClD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAClD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,CAAC,CAAA"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE3F,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;IACpC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;CAC1B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,OAAO,CAAA;AAEnD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAClD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAClD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;CAC7D,CAAC,CAAA"}
@@ -4,6 +4,7 @@ import { Src } from '../src';
4
4
  export declare class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
5
5
  readonly item: Codec<TIn, TOut>;
6
6
  readonly isDynamic = true;
7
+ readonly baseType = "array";
7
8
  constructor(item: Codec<TIn, TOut>);
8
9
  encode(sink: Sink, val: TIn[]): void;
9
10
  decode(src: Src): TOut[];
@@ -11,6 +12,7 @@ export declare class ArrayCodec<const TIn, const TOut> implements Codec<readonly
11
12
  export declare class FixedSizeArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
12
13
  readonly item: Codec<TIn, TOut>;
13
14
  readonly size: number;
15
+ readonly baseType = "array";
14
16
  isDynamic: boolean;
15
17
  slotsCount: number;
16
18
  constructor(item: Codec<TIn, TOut>, size: number);
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,qBAAa,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAGlE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAFlD,SAAgB,SAAS,QAAO;gBAEJ,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAS7B,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;CAczB;AAED,qBAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAG3E,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;aAAkB,IAAI,EAAE,MAAM;IAFzE,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;gBACG,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAkB,IAAI,EAAE,MAAM;IAKhF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAY7B,OAAO,CAAC,aAAa;IAQrB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;IAWxB,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,qBAAa,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAGlE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAFlD,SAAgB,SAAS,QAAO;IAChC,SAAgB,QAAQ,WAAU;gBACN,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAS7B,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;CAczB;AAED,qBAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAK3E,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;aAAkB,IAAI,EAAE,MAAM;IAJhF,SAAgB,QAAQ,WAAU;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;gBAEG,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAkB,IAAI,EAAE,MAAM;IAKhF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAY7B,OAAO,CAAC,aAAa;IAQrB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;IAWxB,OAAO,CAAC,aAAa;CAStB"}
@@ -6,6 +6,7 @@ class ArrayCodec {
6
6
  constructor(item) {
7
7
  this.item = item;
8
8
  this.isDynamic = true;
9
+ this.baseType = 'array';
9
10
  }
10
11
  encode(sink, val) {
11
12
  sink.newDynamicDataArea(val.length);
@@ -17,7 +18,7 @@ class ArrayCodec {
17
18
  }
18
19
  decode(src) {
19
20
  const offset = src.u32();
20
- src.safeJump(offset);
21
+ src.safeJump(offset, 'array');
21
22
  const len = src.u32();
22
23
  const tmpSrc = src.slice(offset + codec_1.WORD_SIZE);
23
24
  const val = new Array(len);
@@ -33,6 +34,7 @@ class FixedSizeArrayCodec {
33
34
  constructor(item, size) {
34
35
  this.item = item;
35
36
  this.size = size;
37
+ this.baseType = 'array';
36
38
  this.isDynamic = item.isDynamic && size > 0;
37
39
  this.slotsCount = this.isDynamic ? 1 : size;
38
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare const string: {
20
20
  readonly encode: (sink: Sink, val: string) => void;
21
21
  readonly decode: (src: Src) => string;
22
22
  readonly isDynamic: true;
23
+ readonly baseType: "string";
23
24
  };
24
25
  export declare const bytes: Codec<Uint8Array | string, string>;
25
26
  export declare const bytes0: Codec<string | Uint8Array, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ exports.bool = {
15
15
  return src.bool();
16
16
  },
17
17
  isDynamic: false,
18
+ baseType: 'bool',
18
19
  };
19
20
  exports.uint8 = {
20
21
  encode(sink, val) {
@@ -24,6 +25,7 @@ exports.uint8 = {
24
25
  return src.u8();
25
26
  },
26
27
  isDynamic: false,
28
+ baseType: 'int',
27
29
  };
28
30
  exports.int8 = {
29
31
  encode(sink, val) {
@@ -33,6 +35,7 @@ exports.int8 = {
33
35
  return src.i8();
34
36
  },
35
37
  isDynamic: false,
38
+ baseType: 'int',
36
39
  };
37
40
  exports.uint16 = {
38
41
  encode(sink, val) {
@@ -42,6 +45,7 @@ exports.uint16 = {
42
45
  return src.u16();
43
46
  },
44
47
  isDynamic: false,
48
+ baseType: 'int',
45
49
  };
46
50
  exports.int16 = {
47
51
  encode(sink, val) {
@@ -51,6 +55,7 @@ exports.int16 = {
51
55
  return src.i16();
52
56
  },
53
57
  isDynamic: false,
58
+ baseType: 'int',
54
59
  };
55
60
  exports.uint32 = {
56
61
  encode(sink, val) {
@@ -60,6 +65,7 @@ exports.uint32 = {
60
65
  return src.u32();
61
66
  },
62
67
  isDynamic: false,
68
+ baseType: 'int',
63
69
  };
64
70
  exports.int32 = {
65
71
  encode(sink, val) {
@@ -69,6 +75,7 @@ exports.int32 = {
69
75
  return src.i32();
70
76
  },
71
77
  isDynamic: false,
78
+ baseType: 'int',
72
79
  };
73
80
  exports.uint64 = {
74
81
  encode(sink, val) {
@@ -78,6 +85,7 @@ exports.uint64 = {
78
85
  return src.u64();
79
86
  },
80
87
  isDynamic: false,
88
+ baseType: 'int',
81
89
  };
82
90
  exports.int64 = {
83
91
  encode(sink, val) {
@@ -87,6 +95,7 @@ exports.int64 = {
87
95
  return src.i64();
88
96
  },
89
97
  isDynamic: false,
98
+ baseType: 'int',
90
99
  };
91
100
  exports.uint128 = {
92
101
  encode(sink, val) {
@@ -96,6 +105,7 @@ exports.uint128 = {
96
105
  return src.u128();
97
106
  },
98
107
  isDynamic: false,
108
+ baseType: 'int',
99
109
  };
100
110
  exports.int128 = {
101
111
  encode(sink, val) {
@@ -105,6 +115,7 @@ exports.int128 = {
105
115
  return src.i128();
106
116
  },
107
117
  isDynamic: false,
118
+ baseType: 'int',
108
119
  };
109
120
  exports.uint256 = {
110
121
  encode(sink, val) {
@@ -114,6 +125,7 @@ exports.uint256 = {
114
125
  return src.u256();
115
126
  },
116
127
  isDynamic: false,
128
+ baseType: 'int',
117
129
  };
118
130
  exports.int256 = {
119
131
  encode(sink, val) {
@@ -123,6 +135,7 @@ exports.int256 = {
123
135
  return src.i256();
124
136
  },
125
137
  isDynamic: false,
138
+ baseType: 'int',
126
139
  };
127
140
  exports.string = {
128
141
  encode(sink, val) {
@@ -134,6 +147,7 @@ exports.string = {
134
147
  return src.string();
135
148
  },
136
149
  isDynamic: true,
150
+ baseType: 'string',
137
151
  };
138
152
  function toBuffer(val) {
139
153
  if (val instanceof Uint8Array) {
@@ -154,6 +168,7 @@ exports.bytes = {
154
168
  return (0, util_internal_hex_1.toHex)(src.bytes());
155
169
  },
156
170
  isDynamic: true,
171
+ baseType: 'bytes',
157
172
  };
158
173
  const bytesN = (size) => ({
159
174
  encode(sink, val) {
@@ -163,6 +178,7 @@ const bytesN = (size) => ({
163
178
  return (0, util_internal_hex_1.toHex)(src.staticBytes(size));
164
179
  },
165
180
  isDynamic: false,
181
+ baseType: 'bytes',
166
182
  });
167
183
  exports.bytes0 = bytesN(0);
168
184
  exports.bytes1 = bytesN(1);
@@ -205,6 +221,7 @@ exports.address = {
205
221
  return src.address();
206
222
  },
207
223
  isDynamic: false,
224
+ baseType: 'address',
208
225
  };
209
226
  const fixedSizeArray = (item, size) => new array_1.FixedSizeArrayCodec(item, size);
210
227
  exports.fixedSizeArray = fixedSizeArray;
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"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AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,OAAO,GAAG,eAAO,CAAA;AACjB,QAAA,MAAM,GAAG,cAAM,CAAA"}
@@ -2,6 +2,7 @@ import { Codec, Struct, DecodedStruct, EncodedStruct } from '../codec';
2
2
  import { Sink } from '../sink';
3
3
  import { Src } from '../src';
4
4
  export declare class StructCodec<const T extends Struct> implements Codec<EncodedStruct<T>, DecodedStruct<T>> {
5
+ readonly baseType = "struct";
5
6
  readonly isDynamic: boolean;
6
7
  readonly slotsCount: number;
7
8
  private readonly childrenSlotsCount;
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAU5B,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACnG,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAG;gBAElB,UAAU,EAAE,CAAC;IAYlB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAWtD,OAAO,CAAC,aAAa;IASd,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC;IAYzC,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAU5B,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACnG,SAAgB,QAAQ,YAAW;IACnC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAG;gBAElB,UAAU,EAAE,CAAC;IAYlB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAWtD,OAAO,CAAC,aAAa;IASd,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC;IAYzC,OAAO,CAAC,aAAa;CAWtB"}
@@ -10,6 +10,7 @@ function slotsCount(codecs) {
10
10
  }
11
11
  class StructCodec {
12
12
  constructor(components) {
13
+ this.baseType = 'struct';
13
14
  this.components = components;
14
15
  const codecs = Object.values(components);
15
16
  this.isDynamic = codecs.some((codec) => codec.isDynamic);
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.js","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Src } from './src';
2
2
  export { Sink } from './sink';
3
- export type { Codec, Struct, DecodedStruct, EncodedStruct } from './codec';
3
+ export type { Codec, Struct, DecodedStruct, EncodedStruct, BaseType } from './codec';
4
4
  export * from './codecs/primitives';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC1E,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACpF,cAAc,qBAAqB,CAAA"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.safeToNumber = void 0;
4
4
  function safeToNumber(value) {
5
- if (!Number.isSafeInteger(value)) {
5
+ if (value < Number.MIN_SAFE_INTEGER || value > Number.MAX_SAFE_INTEGER) {
6
6
  throw new Error(`${value} is not a safe integer`);
7
7
  }
8
8
  return Number(value);
@@ -1 +1 @@
1
- {"version":3,"file":"safeToNumber.js","sourceRoot":"","sources":["../src/safeToNumber.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,KAAsB;IACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AALD,oCAKC"}
1
+ {"version":3,"file":"safeToNumber.js","sourceRoot":"","sources":["../src/safeToNumber.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,KAAsB;IACjD,IAAK,KAAK,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AALD,oCAKC"}
package/lib/src.d.ts CHANGED
@@ -24,7 +24,7 @@ export declare class Src {
24
24
  string(): string;
25
25
  bool(): boolean;
26
26
  private assertLength;
27
- safeJump(pos: number): void;
27
+ safeJump(pos: number, typeName: string): void;
28
28
  jumpBack(): void;
29
29
  }
30
30
  //# sourceMappingURL=src.d.ts.map
package/lib/src.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"src.d.ts","sourceRoot":"","sources":["../src/src.ts"],"names":[],"mappings":"AAEA,qBAAa,GAAG;;IAIF,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,GAAG,CAAI;IACf,OAAO,CAAC,MAAM,CAAI;gBACE,GAAG,EAAE,UAAU;IAInC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;IAIvC,EAAE,IAAI,MAAM;IAOZ,EAAE,IAAI,MAAM;IAIZ,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAWb,GAAG,IAAI,MAAM;IAWb,IAAI,IAAI,MAAM;IAWd,IAAI,IAAI,MAAM;IAWd,IAAI,IAAI,MAAM;IAMd,IAAI,IAAI,MAAM;IAMd,OAAO,IAAI,MAAM;IAIjB,KAAK,IAAI,UAAU;IAUnB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IASpC,MAAM,IAAI,MAAM;IAUhB,IAAI,IAAI,OAAO;IAIf,OAAO,CAAC,YAAY;IAMb,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3B,QAAQ,IAAI,IAAI;CAGxB"}
1
+ {"version":3,"file":"src.d.ts","sourceRoot":"","sources":["../src/src.ts"],"names":[],"mappings":"AAEA,qBAAa,GAAG;;IAIF,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,GAAG,CAAI;IACf,OAAO,CAAC,MAAM,CAAI;gBACE,GAAG,EAAE,UAAU;IAInC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;IAIvC,EAAE,IAAI,MAAM;IAOZ,EAAE,IAAI,MAAM;IAIZ,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAOb,GAAG,IAAI,MAAM;IAIb,GAAG,IAAI,MAAM;IAWb,GAAG,IAAI,MAAM;IAWb,IAAI,IAAI,MAAM;IAWd,IAAI,IAAI,MAAM;IAWd,IAAI,IAAI,MAAM;IAMd,IAAI,IAAI,MAAM;IAMd,OAAO,IAAI,MAAM;IAIjB,KAAK,IAAI,UAAU;IAUnB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IASpC,MAAM,IAAI,MAAM;IAUhB,IAAI,IAAI,OAAO;IAIf,OAAO,CAAC,YAAY;IAMb,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ7C,QAAQ,IAAI,IAAI;CAGxB"}
package/lib/src.js CHANGED
@@ -77,9 +77,9 @@ class Src {
77
77
  }
78
78
  bytes() {
79
79
  const ptr = this.u32();
80
- this.safeJump(ptr);
81
- const len = this.u32();
82
- this.assertLength(len);
80
+ this.safeJump(ptr, 'bytes');
81
+ const len = Number(this.u256());
82
+ this.assertLength(len, 'bytes');
83
83
  const val = this.buf.subarray(this.pos, this.pos + len);
84
84
  this.jumpBack();
85
85
  return val;
@@ -94,9 +94,9 @@ class Src {
94
94
  }
95
95
  string() {
96
96
  const ptr = this.u32();
97
- this.safeJump(ptr);
98
- const len = this.u32();
99
- this.assertLength(len);
97
+ this.safeJump(ptr, 'string');
98
+ const len = Number(this.u256());
99
+ this.assertLength(len, 'string');
100
100
  const val = Buffer.from(this.buf.buffer, this.buf.byteOffset + this.pos, len).toString('utf-8');
101
101
  this.jumpBack();
102
102
  return val;
@@ -104,14 +104,14 @@ class Src {
104
104
  bool() {
105
105
  return !!this.u8();
106
106
  }
107
- assertLength(len) {
107
+ assertLength(len, typeName) {
108
108
  if (this.buf.length - this.pos < len) {
109
- throw new RangeError('Unexpected end of input');
109
+ throw new RangeError(`Unexpected end of input. Attempting to read ${typeName} of length ${len} from 0x${Buffer.from(this.buf).toString('hex')}`);
110
110
  }
111
111
  }
112
- safeJump(pos) {
112
+ safeJump(pos, typeName) {
113
113
  if (pos < 0 || pos >= this.buf.length) {
114
- throw new RangeError(`Unexpected pointer location: 0x${pos.toString(16)}`);
114
+ throw new RangeError(`Unexpected pointer location: 0x${pos.toString(16)}. Attempting to read ${typeName} from 0x${Buffer.from(this.buf).toString('hex')}`);
115
115
  }
116
116
  this.oldPos = this.pos;
117
117
  this.pos = pos;
package/lib/src.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"src.js","sourceRoot":"","sources":["../src/src.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"src.js","sourceRoot":"","sources":["../src/src.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subsquid/evm-codec",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "EVM encoder/decoder tools",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": "git@github.com:subsquid/squid.git",
package/src/codec.ts CHANGED
@@ -3,11 +3,14 @@ import type { Src } from './src'
3
3
 
4
4
  export const WORD_SIZE = 32
5
5
 
6
+ export type BaseType = 'int' | 'address' | 'bool' | 'bytes' | 'string' | 'array' | 'struct'
7
+
6
8
  export interface Codec<TIn, TOut = TIn> {
7
9
  encode(sink: Sink, val: TIn): void
8
10
  decode(src: Src): TOut
9
11
  isDynamic: boolean
10
12
  slotsCount?: number
13
+ baseType: BaseType
11
14
  }
12
15
 
13
16
  export type Struct = {
@@ -4,7 +4,7 @@ import { Src } from '../src'
4
4
 
5
5
  export class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
6
6
  public readonly isDynamic = true
7
-
7
+ public readonly baseType = 'array'
8
8
  constructor(public readonly item: Codec<TIn, TOut>) {}
9
9
 
10
10
  encode(sink: Sink, val: TIn[]) {
@@ -19,7 +19,7 @@ export class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[],
19
19
  decode(src: Src): TOut[] {
20
20
  const offset = src.u32()
21
21
 
22
- src.safeJump(offset)
22
+ src.safeJump(offset, 'array')
23
23
  const len = src.u32()
24
24
 
25
25
  const tmpSrc = src.slice(offset + WORD_SIZE)
@@ -33,8 +33,10 @@ export class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[],
33
33
  }
34
34
 
35
35
  export class FixedSizeArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
36
+ public readonly baseType = 'array'
36
37
  public isDynamic: boolean
37
38
  public slotsCount: number
39
+
38
40
  constructor(public readonly item: Codec<TIn, TOut>, public readonly size: number) {
39
41
  this.isDynamic = item.isDynamic && size > 0
40
42
  this.slotsCount = this.isDynamic ? 1 : size
@@ -16,6 +16,7 @@ export const bool: Codec<boolean> = {
16
16
  return src.bool()
17
17
  },
18
18
  isDynamic: false,
19
+ baseType: 'bool',
19
20
  }
20
21
 
21
22
  export const uint8: Codec<Numberish, number> = {
@@ -26,6 +27,7 @@ export const uint8: Codec<Numberish, number> = {
26
27
  return src.u8()
27
28
  },
28
29
  isDynamic: false,
30
+ baseType: 'int',
29
31
  }
30
32
 
31
33
  export const int8: Codec<Numberish, number> = {
@@ -36,6 +38,7 @@ export const int8: Codec<Numberish, number> = {
36
38
  return src.i8()
37
39
  },
38
40
  isDynamic: false,
41
+ baseType: 'int',
39
42
  }
40
43
 
41
44
  export const uint16: Codec<Numberish, number> = {
@@ -46,6 +49,7 @@ export const uint16: Codec<Numberish, number> = {
46
49
  return src.u16()
47
50
  },
48
51
  isDynamic: false,
52
+ baseType: 'int',
49
53
  }
50
54
 
51
55
  export const int16: Codec<Numberish, number> = {
@@ -56,6 +60,7 @@ export const int16: Codec<Numberish, number> = {
56
60
  return src.i16()
57
61
  },
58
62
  isDynamic: false,
63
+ baseType: 'int',
59
64
  }
60
65
 
61
66
  export const uint32: Codec<Numberish, number> = {
@@ -66,6 +71,7 @@ export const uint32: Codec<Numberish, number> = {
66
71
  return src.u32()
67
72
  },
68
73
  isDynamic: false,
74
+ baseType: 'int',
69
75
  }
70
76
 
71
77
  export const int32: Codec<Numberish, number> = {
@@ -76,6 +82,7 @@ export const int32: Codec<Numberish, number> = {
76
82
  return src.i32()
77
83
  },
78
84
  isDynamic: false,
85
+ baseType: 'int',
79
86
  }
80
87
 
81
88
  export const uint64: Codec<Numberish, bigint> = {
@@ -86,6 +93,7 @@ export const uint64: Codec<Numberish, bigint> = {
86
93
  return src.u64()
87
94
  },
88
95
  isDynamic: false,
96
+ baseType: 'int',
89
97
  }
90
98
 
91
99
  export const int64: Codec<Numberish, bigint> = {
@@ -96,6 +104,7 @@ export const int64: Codec<Numberish, bigint> = {
96
104
  return src.i64()
97
105
  },
98
106
  isDynamic: false,
107
+ baseType: 'int',
99
108
  }
100
109
 
101
110
  export const uint128: Codec<Numberish, bigint> = {
@@ -106,6 +115,7 @@ export const uint128: Codec<Numberish, bigint> = {
106
115
  return src.u128()
107
116
  },
108
117
  isDynamic: false,
118
+ baseType: 'int',
109
119
  }
110
120
 
111
121
  export const int128: Codec<Numberish, bigint> = {
@@ -116,6 +126,7 @@ export const int128: Codec<Numberish, bigint> = {
116
126
  return src.i128()
117
127
  },
118
128
  isDynamic: false,
129
+ baseType: 'int',
119
130
  }
120
131
 
121
132
  export const uint256: Codec<Numberish, bigint> = {
@@ -126,6 +137,7 @@ export const uint256: Codec<Numberish, bigint> = {
126
137
  return src.u256()
127
138
  },
128
139
  isDynamic: false,
140
+ baseType: 'int',
129
141
  }
130
142
 
131
143
  export const int256: Codec<Numberish, bigint> = {
@@ -136,6 +148,7 @@ export const int256: Codec<Numberish, bigint> = {
136
148
  return src.i256()
137
149
  },
138
150
  isDynamic: false,
151
+ baseType: 'int',
139
152
  }
140
153
 
141
154
  export const string = <const>{
@@ -148,6 +161,7 @@ export const string = <const>{
148
161
  return src.string()
149
162
  },
150
163
  isDynamic: true,
164
+ baseType: 'string',
151
165
  }
152
166
 
153
167
  function toBuffer(val: Uint8Array | string): Uint8Array {
@@ -170,6 +184,7 @@ export const bytes: Codec<Uint8Array | string, string> = <const>{
170
184
  return toHex(src.bytes())
171
185
  },
172
186
  isDynamic: true,
187
+ baseType: 'bytes',
173
188
  }
174
189
 
175
190
  const bytesN = (size: number): Codec<Uint8Array | string, string> => ({
@@ -180,6 +195,7 @@ const bytesN = (size: number): Codec<Uint8Array | string, string> => ({
180
195
  return toHex(src.staticBytes(size))
181
196
  },
182
197
  isDynamic: false,
198
+ baseType: 'bytes',
183
199
  })
184
200
 
185
201
  export const bytes0 = bytesN(0)
@@ -224,6 +240,7 @@ export const address: Codec<string> = {
224
240
  return src.address()
225
241
  },
226
242
  isDynamic: false,
243
+ baseType: 'address',
227
244
  }
228
245
 
229
246
  export const fixedSizeArray = <TIn, TOut>(item: Codec<TIn, TOut>, size: number): Codec<TIn[], TOut[]> => new FixedSizeArrayCodec(item, size)
@@ -11,6 +11,7 @@ function slotsCount(codecs: readonly Codec<any>[]) {
11
11
  }
12
12
 
13
13
  export class StructCodec<const T extends Struct> implements Codec<EncodedStruct<T>, DecodedStruct<T>> {
14
+ public readonly baseType = 'struct'
14
15
  public readonly isDynamic: boolean
15
16
  public readonly slotsCount: number
16
17
  private readonly childrenSlotsCount: number
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { Src } from './src'
2
2
  export { Sink } from './sink'
3
- export type { Codec, Struct, DecodedStruct, EncodedStruct } from './codec'
3
+ export type { Codec, Struct, DecodedStruct, EncodedStruct, BaseType } from './codec'
4
4
  export * from './codecs/primitives'
@@ -1,5 +1,5 @@
1
1
  export function safeToNumber(value: number | bigint): number {
2
- if (!Number.isSafeInteger(value)) {
2
+ if ( value < Number.MIN_SAFE_INTEGER || value > Number.MAX_SAFE_INTEGER) {
3
3
  throw new Error(`${value} is not a safe integer`)
4
4
  }
5
5
  return Number(value)
package/src/src.ts CHANGED
@@ -107,9 +107,9 @@ export class Src {
107
107
 
108
108
  bytes(): Uint8Array {
109
109
  const ptr = this.u32()
110
- this.safeJump(ptr)
111
- const len = this.u32()
112
- this.assertLength(len)
110
+ this.safeJump(ptr, 'bytes')
111
+ const len = Number(this.u256())
112
+ this.assertLength(len, 'bytes')
113
113
  const val = this.buf.subarray(this.pos, this.pos + len)
114
114
  this.jumpBack()
115
115
  return val
@@ -126,9 +126,9 @@ export class Src {
126
126
 
127
127
  string(): string {
128
128
  const ptr = this.u32()
129
- this.safeJump(ptr)
130
- const len = this.u32()
131
- this.assertLength(len)
129
+ this.safeJump(ptr, 'string')
130
+ const len = Number(this.u256())
131
+ this.assertLength(len, 'string')
132
132
  const val = Buffer.from(this.buf.buffer, this.buf.byteOffset + this.pos, len).toString('utf-8')
133
133
  this.jumpBack()
134
134
  return val
@@ -138,15 +138,15 @@ export class Src {
138
138
  return !!this.u8()
139
139
  }
140
140
 
141
- private assertLength(len: number): void {
141
+ private assertLength(len: number, typeName: string): void {
142
142
  if (this.buf.length - this.pos < len) {
143
- throw new RangeError('Unexpected end of input')
143
+ throw new RangeError(`Unexpected end of input. Attempting to read ${typeName} of length ${len} from 0x${Buffer.from(this.buf).toString('hex')}`)
144
144
  }
145
145
  }
146
146
 
147
- public safeJump(pos: number): void {
147
+ public safeJump(pos: number, typeName: string): void {
148
148
  if (pos < 0 || pos >= this.buf.length) {
149
- throw new RangeError(`Unexpected pointer location: 0x${pos.toString(16)}`)
149
+ throw new RangeError(`Unexpected pointer location: 0x${pos.toString(16)}. Attempting to read ${typeName} from 0x${Buffer.from(this.buf).toString('hex')}`)
150
150
  }
151
151
  this.oldPos = this.pos
152
152
  this.pos = pos