@subsquid/evm-codec 0.2.1 → 1.0.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 (79) hide show
  1. package/lib/codec.d.ts +59 -12
  2. package/lib/codec.d.ts.map +1 -1
  3. package/lib/codec.js.map +1 -1
  4. package/lib/codecs/array.d.ts +3 -3
  5. package/lib/codecs/array.d.ts.map +1 -1
  6. package/lib/codecs/array.js +13 -7
  7. package/lib/codecs/array.js.map +1 -1
  8. package/lib/codecs/primitives.d.ts +2 -16
  9. package/lib/codecs/primitives.d.ts.map +1 -1
  10. package/lib/codecs/primitives.js +52 -141
  11. package/lib/codecs/primitives.js.map +1 -1
  12. package/lib/codecs/struct.d.ts +17 -9
  13. package/lib/codecs/struct.d.ts.map +1 -1
  14. package/lib/codecs/struct.js +53 -39
  15. package/lib/codecs/struct.js.map +1 -1
  16. package/lib/dsl.d.ts +11 -0
  17. package/lib/dsl.d.ts.map +1 -0
  18. package/lib/dsl.js +33 -0
  19. package/lib/dsl.js.map +1 -0
  20. package/lib/index.d.ts +7 -4
  21. package/lib/index.d.ts.map +1 -1
  22. package/lib/index.js +7 -6
  23. package/lib/index.js.map +1 -1
  24. package/lib/sink/bounds.d.ts +21 -0
  25. package/lib/sink/bounds.d.ts.map +1 -0
  26. package/lib/sink/bounds.js +24 -0
  27. package/lib/sink/bounds.js.map +1 -0
  28. package/lib/sink/bytes.d.ts +41 -0
  29. package/lib/sink/bytes.d.ts.map +1 -0
  30. package/lib/sink/bytes.js +261 -0
  31. package/lib/sink/bytes.js.map +1 -0
  32. package/lib/sink/hex.d.ts +33 -0
  33. package/lib/sink/hex.d.ts.map +1 -0
  34. package/lib/sink/hex.js +289 -0
  35. package/lib/sink/hex.js.map +1 -0
  36. package/lib/{src.d.ts → src/bytes.d.ts} +7 -5
  37. package/lib/src/bytes.d.ts.map +1 -0
  38. package/lib/src/bytes.js +161 -0
  39. package/lib/src/bytes.js.map +1 -0
  40. package/lib/src/hex.d.ts +33 -0
  41. package/lib/src/hex.d.ts.map +1 -0
  42. package/lib/src/hex.js +164 -0
  43. package/lib/src/hex.js.map +1 -0
  44. package/lib/util.d.ts +6 -0
  45. package/lib/util.d.ts.map +1 -0
  46. package/lib/util.js +20 -0
  47. package/lib/util.js.map +1 -0
  48. package/package.json +6 -8
  49. package/src/codec.ts +67 -18
  50. package/src/codecs/array.test.ts +87 -0
  51. package/src/codecs/array.ts +9 -12
  52. package/src/codecs/primitives.test.ts +27 -0
  53. package/src/codecs/primitives.ts +87 -191
  54. package/src/codecs/struct.test.ts +69 -0
  55. package/src/codecs/struct.ts +80 -60
  56. package/src/dsl.ts +16 -0
  57. package/src/index.ts +7 -4
  58. package/src/sink/bounds.ts +26 -0
  59. package/src/sink/bytes.test.ts +92 -0
  60. package/src/sink/bytes.ts +290 -0
  61. package/src/sink/hex.ts +311 -0
  62. package/src/src/bytes.test.ts +114 -0
  63. package/src/src/bytes.ts +187 -0
  64. package/src/src/hex.ts +191 -0
  65. package/src/util.ts +19 -0
  66. package/lib/safeToNumber.d.ts +0 -2
  67. package/lib/safeToNumber.d.ts.map +0 -1
  68. package/lib/safeToNumber.js +0 -11
  69. package/lib/safeToNumber.js.map +0 -1
  70. package/lib/sink.d.ts +0 -43
  71. package/lib/sink.d.ts.map +0 -1
  72. package/lib/sink.js +0 -215
  73. package/lib/sink.js.map +0 -1
  74. package/lib/src.d.ts.map +0 -1
  75. package/lib/src.js +0 -141
  76. package/lib/src.js.map +0 -1
  77. package/src/safeToNumber.ts +0 -6
  78. package/src/sink.ts +0 -241
  79. package/src/src.ts +0 -158
@@ -0,0 +1,33 @@
1
+ import { type Sink } from '../codec';
2
+ export declare class HexSink implements Sink {
3
+ #private;
4
+ private pos;
5
+ private buf;
6
+ private stack;
7
+ constructor(fields: number, capacity?: number);
8
+ result(): string;
9
+ toString(): string;
10
+ reserve(additional: number): void;
11
+ size(): number;
12
+ u8(val: number): void;
13
+ i8(val: number): void;
14
+ u16(val: number): void;
15
+ i16(val: number): void;
16
+ u32(val: number): void;
17
+ i32(val: number): void;
18
+ u64(val: bigint): void;
19
+ i64(val: bigint): void;
20
+ u128(val: bigint): void;
21
+ i128(val: bigint): void;
22
+ u256(val: bigint): void;
23
+ i256(val: bigint): void;
24
+ bytes(val: Uint8Array | string): void;
25
+ staticBytes(len: number, val: Uint8Array | string): void;
26
+ address(val: string): void;
27
+ string(val: string): void;
28
+ bool(val: boolean): void;
29
+ openTail(slotsCount?: number): void;
30
+ openArray(count: number): void;
31
+ closeTail(): void;
32
+ }
33
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/sink/hex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,IAAI,EAAC,MAAM,UAAU,CAAA;AA2B7C,qBAAa,OAAQ,YAAW,IAAI;;IAChC,OAAO,CAAC,GAAG,CAAI;IACf,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,KAAK,CAA+E;gBAEhF,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAqC;IAUzE,MAAM,IAAI,MAAM;IAMhB,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAOjC,IAAI;IA4CJ,EAAE,CAAC,GAAG,EAAE,MAAM;IAMd,EAAE,CAAC,GAAG,EAAE,MAAM;IAKd,GAAG,CAAC,GAAG,EAAE,MAAM;IAMf,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,GAAG,CAAC,GAAG,EAAE,MAAM;IAUf,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,GAAG,CAAC,GAAG,EAAE,MAAM;IAMf,GAAG,CAAC,GAAG,EAAE,MAAM;IAKf,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAKhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAMhB,IAAI,CAAC,GAAG,EAAE,MAAM;IAWhB,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAqC9B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAwBjD,OAAO,CAAC,GAAG,EAAE,MAAM;IAWnB,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,IAAI,CAAC,GAAG,EAAE,OAAO;IAQjB,QAAQ,CAAC,UAAU,SAAI;IASvB,SAAS,CAAC,KAAK,EAAE,MAAM;IA8BvB,SAAS;CAMZ"}
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HexSink = void 0;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const util_internal_hex_1 = require("@subsquid/util-internal-hex");
9
+ const codec_1 = require("../codec");
10
+ const bounds_1 = require("./bounds");
11
+ const HEX_BYTE = 2;
12
+ const WORD_HEX = codec_1.WORD_SIZE * HEX_BYTE;
13
+ const CODE_0 = 48; // '0'
14
+ const CODE_A_UPPER = 65; // 'A'
15
+ const CODE_F_UPPER = 70; // 'F'
16
+ // Precomputed ASCII codes for hex nibbles 0–15 ('0'–'9', 'a'–'f').
17
+ const NIBBLE_CODE = new Uint8Array(16);
18
+ for (let i = 0; i < 10; i++)
19
+ NIBBLE_CODE[i] = 48 + i;
20
+ for (let i = 10; i < 16; i++)
21
+ NIBBLE_CODE[i] = 87 + i;
22
+ // At or above this many input bytes the native Buffer.toString('hex') path
23
+ // is cheaper than a per-byte JS loop.
24
+ const BUFFER_HEX_CUTOFF = 64;
25
+ class HexSink {
26
+ pos = 0;
27
+ buf;
28
+ stack = [];
29
+ constructor(fields, capacity = Math.max(fields * codec_1.WORD_SIZE, 1280)) {
30
+ this.buf = Buffer.alloc(capacity * HEX_BYTE, CODE_0);
31
+ this.stack.push({
32
+ start: 0,
33
+ jumpBackPtr: 0,
34
+ size: fields * codec_1.WORD_SIZE,
35
+ countWord: false,
36
+ });
37
+ }
38
+ result() {
39
+ (0, node_assert_1.default)(this.stack.length === 1, 'Cannot get result during dynamic encoding');
40
+ const chars = this.size() * HEX_BYTE;
41
+ return `0x${this.buf.toString('latin1', 0, chars)}`;
42
+ }
43
+ toString() {
44
+ return this.result();
45
+ }
46
+ reserve(additional) {
47
+ const needed = (this.pos + additional) * HEX_BYTE;
48
+ if (this.buf.length < needed) {
49
+ this.#allocate(needed);
50
+ }
51
+ }
52
+ size() {
53
+ return this.stack[this.stack.length - 1].size;
54
+ }
55
+ #allocate(cap) {
56
+ cap = Math.max(cap, this.buf.length * 2);
57
+ const grown = Buffer.alloc(cap, CODE_0);
58
+ grown.set(this.buf);
59
+ this.buf = grown;
60
+ }
61
+ // Right-align `hex` in a 32-byte ABI word at the current position.
62
+ // Left padding is implicit because buf is pre-filled with '0'.
63
+ #writeWordRight(hex) {
64
+ (0, node_assert_1.default)(hex.length <= WORD_HEX, `hex string too long for one word: ${hex.length} chars`);
65
+ const buf = this.buf;
66
+ const start = this.pos * HEX_BYTE + WORD_HEX - hex.length;
67
+ for (let i = 0; i < hex.length; i++) {
68
+ buf[start + i] = hex.charCodeAt(i);
69
+ }
70
+ this.pos += codec_1.WORD_SIZE;
71
+ }
72
+ // Copy `len` hex chars from `hex` starting at `srcStart` into buf at
73
+ // `dstStart`, lowercasing any A–F so output is canonical lowercase.
74
+ #copyHexLower(hex, srcStart, dstStart, len) {
75
+ const buf = this.buf;
76
+ for (let i = 0; i < len; i++) {
77
+ const c = hex.charCodeAt(srcStart + i);
78
+ buf[dstStart + i] = c >= CODE_A_UPPER && c <= CODE_F_UPPER ? c + 32 : c;
79
+ }
80
+ }
81
+ // Encode binary `src` bytes as hex ASCII codes directly into buf at
82
+ // `dstStart` using the NIBBLE_CODE lookup table.
83
+ #encodeBytes(src, srcLen, dstStart) {
84
+ const buf = this.buf;
85
+ for (let i = 0; i < srcLen; i++) {
86
+ const b = src[i];
87
+ buf[dstStart + i * 2] = NIBBLE_CODE[b >> 4];
88
+ buf[dstStart + i * 2 + 1] = NIBBLE_CODE[b & 0xf];
89
+ }
90
+ }
91
+ u8(val) {
92
+ if (val < 0 || val > bounds_1.U8_MAX)
93
+ this.#oob(val, 'uint8', 0, bounds_1.U8_MAX);
94
+ this.reserve(codec_1.WORD_SIZE);
95
+ this.#writeWordRight(val.toString(16));
96
+ }
97
+ i8(val) {
98
+ if (val < bounds_1.I8_MIN || val > bounds_1.I8_MAX)
99
+ this.#oob(val, 'int8', bounds_1.I8_MIN, bounds_1.I8_MAX);
100
+ this.#i256(BigInt(val));
101
+ }
102
+ u16(val) {
103
+ if (val < 0 || val > bounds_1.U16_MAX)
104
+ this.#oob(val, 'uint16', 0, bounds_1.U16_MAX);
105
+ this.reserve(codec_1.WORD_SIZE);
106
+ this.#writeWordRight(val.toString(16));
107
+ }
108
+ i16(val) {
109
+ if (val < bounds_1.I16_MIN || val > bounds_1.I16_MAX)
110
+ this.#oob(val, 'int16', bounds_1.I16_MIN, bounds_1.I16_MAX);
111
+ this.#i256(BigInt(val));
112
+ }
113
+ u32(val) {
114
+ if (val < 0 || val > bounds_1.U32_MAX)
115
+ this.#oob(val, 'uint32', 0, bounds_1.U32_MAX);
116
+ this.reserve(codec_1.WORD_SIZE);
117
+ this.#writeWordRight(val.toString(16));
118
+ }
119
+ #u32Raw(val) {
120
+ this.#writeWordRight(val.toString(16));
121
+ }
122
+ i32(val) {
123
+ if (val < bounds_1.I32_MIN || val > bounds_1.I32_MAX)
124
+ this.#oob(val, 'int32', bounds_1.I32_MIN, bounds_1.I32_MAX);
125
+ this.#i256(BigInt(val));
126
+ }
127
+ u64(val) {
128
+ if (val < 0n || val > bounds_1.U64_MAX_BI)
129
+ this.#oob(val, 'uint64', 0n, bounds_1.U64_MAX_BI);
130
+ this.reserve(codec_1.WORD_SIZE);
131
+ this.#writeWordRight(val.toString(16));
132
+ }
133
+ i64(val) {
134
+ if (val < bounds_1.I64_MIN_BI || val > bounds_1.I64_MAX_BI)
135
+ this.#oob(val, 'int64', bounds_1.I64_MIN_BI, bounds_1.I64_MAX_BI);
136
+ this.#i256(val);
137
+ }
138
+ u128(val) {
139
+ if (val < 0n || val > bounds_1.U128_MAX_BI)
140
+ this.#oob(val, 'uint128', 0n, bounds_1.U128_MAX_BI);
141
+ this.reserve(codec_1.WORD_SIZE);
142
+ this.#writeWordRight(val.toString(16));
143
+ }
144
+ i128(val) {
145
+ if (val < bounds_1.I128_MIN_BI || val > bounds_1.I128_MAX_BI)
146
+ this.#oob(val, 'int128', bounds_1.I128_MIN_BI, bounds_1.I128_MAX_BI);
147
+ this.#i256(val);
148
+ }
149
+ u256(val) {
150
+ if (val < 0n || val > bounds_1.U256_MAX_BI)
151
+ this.#oob(val, 'uint256', 0n, bounds_1.U256_MAX_BI);
152
+ this.reserve(codec_1.WORD_SIZE);
153
+ this.#writeWordRight(val.toString(16));
154
+ }
155
+ i256(val) {
156
+ if (val < bounds_1.I256_MIN_BI || val > bounds_1.I256_MAX_BI)
157
+ this.#oob(val, 'int256', bounds_1.I256_MIN_BI, bounds_1.I256_MAX_BI);
158
+ this.#i256(val);
159
+ }
160
+ #i256(val) {
161
+ const uval = val >= 0n ? val : val + bounds_1.U256_BASE;
162
+ this.reserve(codec_1.WORD_SIZE);
163
+ this.#writeWordRight(uval.toString(16));
164
+ }
165
+ bytes(val) {
166
+ if (typeof val === 'string') {
167
+ if (!(0, util_internal_hex_1.isHex)(val)) {
168
+ throw new Error(`Expected hex string or Uint8Array, got: ${val}`);
169
+ }
170
+ const nibbles = val.length - 2;
171
+ const size = nibbles >> 1;
172
+ this.u32(size);
173
+ const wordsCount = (size + codec_1.WORD_SIZE - 1) >> 5;
174
+ const reservedSize = wordsCount << 5;
175
+ this.reserve(reservedSize);
176
+ const dst = this.pos * HEX_BYTE;
177
+ if (nibbles >= BUFFER_HEX_CUTOFF * HEX_BYTE) {
178
+ this.buf.write(val.slice(2).toLowerCase(), dst, nibbles, 'latin1');
179
+ }
180
+ else {
181
+ this.#copyHexLower(val, 2, dst, nibbles);
182
+ }
183
+ this.pos += reservedSize;
184
+ this.#increaseCurrentDataAreaSize(reservedSize + codec_1.WORD_SIZE);
185
+ }
186
+ else {
187
+ const size = val.length;
188
+ this.u32(size);
189
+ const wordsCount = (size + codec_1.WORD_SIZE - 1) >> 5;
190
+ const reservedSize = wordsCount << 5;
191
+ this.reserve(reservedSize);
192
+ const dst = this.pos * HEX_BYTE;
193
+ if (size >= BUFFER_HEX_CUTOFF) {
194
+ const hex = Buffer.from(val.buffer, val.byteOffset, size).toString('hex');
195
+ this.buf.write(hex, dst, hex.length, 'latin1');
196
+ }
197
+ else {
198
+ this.#encodeBytes(val, size, dst);
199
+ }
200
+ this.pos += reservedSize;
201
+ this.#increaseCurrentDataAreaSize(reservedSize + codec_1.WORD_SIZE);
202
+ }
203
+ }
204
+ staticBytes(len, val) {
205
+ if (len > 32) {
206
+ throw new Error(`bytes${len} is not a valid type`);
207
+ }
208
+ this.reserve(codec_1.WORD_SIZE);
209
+ if (typeof val === 'string') {
210
+ if (!(0, util_internal_hex_1.isHex)(val)) {
211
+ throw new Error(`Expected hex string or Uint8Array, got: ${val}`);
212
+ }
213
+ const nibbles = val.length - 2;
214
+ if (nibbles > len * HEX_BYTE) {
215
+ throw new Error(`invalid data size for bytes${len}`);
216
+ }
217
+ this.#copyHexLower(val, 2, this.pos * HEX_BYTE, nibbles);
218
+ this.pos += codec_1.WORD_SIZE;
219
+ }
220
+ else {
221
+ if (val.length > len) {
222
+ throw new Error(`invalid data size for bytes${len}`);
223
+ }
224
+ this.#encodeBytes(val, val.length, this.pos * HEX_BYTE);
225
+ this.pos += codec_1.WORD_SIZE;
226
+ }
227
+ }
228
+ address(val) {
229
+ if (val.length === 42 && val.charCodeAt(0) === 0x30 && val.charCodeAt(1) === 0x78) {
230
+ this.reserve(codec_1.WORD_SIZE);
231
+ // 20-byte address right-aligned in a 32-byte word: skip 12 zero bytes (24 hex chars) of padding
232
+ this.#copyHexLower(val, 2, this.pos * HEX_BYTE + 24, 40);
233
+ this.pos += codec_1.WORD_SIZE;
234
+ return;
235
+ }
236
+ this.u256(BigInt(val));
237
+ }
238
+ string(val) {
239
+ this.bytes(bounds_1.TEXT_ENCODER.encode(val));
240
+ }
241
+ bool(val) {
242
+ this.u8(val ? 1 : 0);
243
+ }
244
+ #oob(val, typeName, min, max) {
245
+ throw new Error(`${val} is out of bounds for ${typeName}[${min}, ${max}]`);
246
+ }
247
+ openTail(slotsCount = 0) {
248
+ const offset = this.size();
249
+ this.reserve(codec_1.WORD_SIZE);
250
+ this.#u32Raw(offset);
251
+ const dataAreaStart = this.#currentDataAreaStart();
252
+ this.#pushDataArea(dataAreaStart + offset, slotsCount, false);
253
+ this.pos = dataAreaStart + offset;
254
+ }
255
+ openArray(count) {
256
+ const offset = this.size();
257
+ this.reserve(codec_1.WORD_SIZE);
258
+ this.#u32Raw(offset);
259
+ const dataAreaStart = this.#currentDataAreaStart();
260
+ this.#pushDataArea(dataAreaStart + offset + codec_1.WORD_SIZE, count, true);
261
+ this.pos = dataAreaStart + offset;
262
+ this.reserve(codec_1.WORD_SIZE);
263
+ this.#u32Raw(count);
264
+ }
265
+ #currentDataAreaStart() {
266
+ return this.stack[this.stack.length - 1].start;
267
+ }
268
+ #increaseCurrentDataAreaSize(amount) {
269
+ this.stack[this.stack.length - 1].size += amount;
270
+ }
271
+ #pushDataArea(dataAreaStart, slotsCount, countWord) {
272
+ const size = slotsCount * codec_1.WORD_SIZE;
273
+ this.reserve(dataAreaStart + size);
274
+ this.stack.push({
275
+ start: dataAreaStart,
276
+ jumpBackPtr: this.pos,
277
+ size,
278
+ countWord,
279
+ });
280
+ }
281
+ closeTail() {
282
+ (0, node_assert_1.default)(this.stack.length > 1, 'No dynamic encoding started');
283
+ const { jumpBackPtr, size, countWord } = this.stack.pop();
284
+ this.#increaseCurrentDataAreaSize(size + (countWord ? codec_1.WORD_SIZE : 0));
285
+ this.pos = jumpBackPtr;
286
+ }
287
+ }
288
+ exports.HexSink = HexSink;
289
+ //# sourceMappingURL=hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../src/sink/hex.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- export declare class Src {
1
+ import { type Src } from '../codec';
2
+ export declare class BytesSrc implements Src {
2
3
  #private;
3
4
  private buf;
4
5
  private view;
5
6
  private pos;
6
7
  private oldPos;
7
8
  constructor(buf: Uint8Array);
8
- slice(start: number, end?: number): Src;
9
+ slice(start: number, end?: number): BytesSrc;
9
10
  u8(): number;
10
11
  i8(): number;
11
12
  u16(): number;
@@ -20,11 +21,12 @@ export declare class Src {
20
21
  i256(): bigint;
21
22
  address(): string;
22
23
  bytes(): Uint8Array;
24
+ bytesHex(): string;
23
25
  staticBytes(len: number): Uint8Array;
26
+ staticBytesHex(len: number): string;
24
27
  string(): string;
25
28
  bool(): boolean;
26
- private assertLength;
27
- safeJump(pos: number, typeName: string): void;
29
+ jump(pos: number, typeName?: string): void;
28
30
  jumpBack(): void;
29
31
  }
30
- //# sourceMappingURL=src.d.ts.map
32
+ //# sourceMappingURL=bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/src/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAC,MAAM,UAAU,CAAA;AAY5C,qBAAa,QAAS,YAAW,GAAG;;IAKpB,OAAO,CAAC,GAAG;IAJvB,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,GAAG,CAAI;IACf,OAAO,CAAC,MAAM,CAAI;gBAEE,GAAG,EAAE,UAAU;IAInC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ;IAI5C,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;IAMb,IAAI,IAAI,MAAM;IAYd,IAAI,IAAI,MAAM;IAMd,IAAI,IAAI,MAAM;IAMd,IAAI,IAAI,MAAM;IAOd,OAAO,IAAI,MAAM;IAMjB,KAAK,IAAI,UAAU;IAUnB,QAAQ,IAAI,MAAM;IAUlB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IASpC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASnC,MAAM,IAAI,MAAM;IAUhB,IAAI,IAAI,OAAO;IAYf,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAW1C,QAAQ,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BytesSrc = void 0;
4
+ const codec_1 = require("../codec");
5
+ const util_internal_hex_1 = require("@subsquid/util-internal-hex");
6
+ const I64_SIGN_BIT = 1n << 63n;
7
+ const I64_RANGE = 1n << 64n;
8
+ const I128_SIGN_BIT = 1n << 127n;
9
+ const I128_RANGE = 1n << 128n;
10
+ const I256_SIGN_BIT = 1n << 255n;
11
+ const I256_RANGE = 1n << 256n;
12
+ const TEXT_DECODER = new TextDecoder('utf-8');
13
+ class BytesSrc {
14
+ buf;
15
+ view;
16
+ pos = 0;
17
+ oldPos = 0;
18
+ constructor(buf) {
19
+ this.buf = buf;
20
+ this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
21
+ }
22
+ slice(start, end) {
23
+ return new BytesSrc(this.buf.subarray(start, end));
24
+ }
25
+ u8() {
26
+ this.pos += codec_1.WORD_SIZE - 1;
27
+ let val = this.view.getUint8(this.pos);
28
+ this.pos += 1;
29
+ return val;
30
+ }
31
+ i8() {
32
+ return Number(this.i256());
33
+ }
34
+ u16() {
35
+ this.pos += codec_1.WORD_SIZE - 2;
36
+ let val = this.view.getUint16(this.pos, false);
37
+ this.pos += 2;
38
+ return val;
39
+ }
40
+ i16() {
41
+ return Number(this.i256());
42
+ }
43
+ u32() {
44
+ this.pos += codec_1.WORD_SIZE - 4;
45
+ let val = this.view.getUint32(this.pos, false);
46
+ this.pos += 4;
47
+ return val;
48
+ }
49
+ i32() {
50
+ return Number(this.i256());
51
+ }
52
+ u64() {
53
+ this.pos += codec_1.WORD_SIZE - 8;
54
+ return this.#u64();
55
+ }
56
+ #u64() {
57
+ let val = this.view.getBigUint64(this.pos, false);
58
+ this.pos += 8;
59
+ return val;
60
+ }
61
+ i64() {
62
+ this.pos += codec_1.WORD_SIZE - 8;
63
+ const raw = this.#u64();
64
+ return raw < I64_SIGN_BIT ? raw : raw - I64_RANGE;
65
+ }
66
+ u128() {
67
+ this.pos += codec_1.WORD_SIZE - 16;
68
+ return this.#u128();
69
+ }
70
+ #u128() {
71
+ const hi = this.view.getBigUint64(this.pos, false);
72
+ const lo = this.view.getBigUint64(this.pos + 8, false);
73
+ this.pos += 16;
74
+ return (hi << 64n) | lo;
75
+ }
76
+ i128() {
77
+ this.pos += codec_1.WORD_SIZE - 16;
78
+ const raw = this.#u128();
79
+ return raw < I128_SIGN_BIT ? raw : raw - I128_RANGE;
80
+ }
81
+ u256() {
82
+ const hi = this.#u128();
83
+ const lo = this.#u128();
84
+ return (hi << 128n) | lo;
85
+ }
86
+ i256() {
87
+ const hi = this.#u128();
88
+ const lo = this.#u128();
89
+ const raw = (hi << 128n) | lo;
90
+ return raw < I256_SIGN_BIT ? raw : raw - I256_RANGE;
91
+ }
92
+ address() {
93
+ const start = this.pos + codec_1.WORD_SIZE - 20;
94
+ this.pos += codec_1.WORD_SIZE;
95
+ return (0, util_internal_hex_1.toHex)(this.buf, start, 20);
96
+ }
97
+ bytes() {
98
+ const ptr = this.u32();
99
+ this.jump(ptr);
100
+ const len = Number(this.u256());
101
+ this.#assertLength(len, 'bytes');
102
+ const val = this.buf.subarray(this.pos, this.pos + len);
103
+ this.jumpBack();
104
+ return val;
105
+ }
106
+ bytesHex() {
107
+ const ptr = this.u32();
108
+ this.jump(ptr);
109
+ const len = Number(this.u256());
110
+ this.#assertLength(len, 'bytes');
111
+ const val = (0, util_internal_hex_1.toHex)(this.buf, this.pos, len);
112
+ this.jumpBack();
113
+ return val;
114
+ }
115
+ staticBytes(len) {
116
+ if (len > 32) {
117
+ throw new Error(`bytes${len} is not a valid type`);
118
+ }
119
+ const val = this.buf.subarray(this.pos, this.pos + len);
120
+ this.pos += codec_1.WORD_SIZE;
121
+ return val;
122
+ }
123
+ staticBytesHex(len) {
124
+ if (len > 32) {
125
+ throw new Error(`bytes${len} is not a valid type`);
126
+ }
127
+ const start = this.pos;
128
+ this.pos += codec_1.WORD_SIZE;
129
+ return (0, util_internal_hex_1.toHex)(this.buf, start, len);
130
+ }
131
+ string() {
132
+ const ptr = this.u32();
133
+ this.jump(ptr, 'string');
134
+ const len = Number(this.u256());
135
+ this.#assertLength(len, 'string');
136
+ const val = TEXT_DECODER.decode(this.buf.subarray(this.pos, this.pos + len));
137
+ this.jumpBack();
138
+ return val;
139
+ }
140
+ bool() {
141
+ return !!this.u8();
142
+ }
143
+ #assertLength(len, typeName) {
144
+ if (this.buf.length - this.pos < len) {
145
+ throw new RangeError(`Unexpected end of input. Attempting to read ${typeName} of length ${len} from ${(0, util_internal_hex_1.toHex)(this.buf)}`);
146
+ }
147
+ }
148
+ jump(pos, typeName) {
149
+ if (pos < 0 || pos >= this.buf.length) {
150
+ const what = typeName ? `${typeName} ` : '';
151
+ throw new RangeError(`Unexpected pointer location: 0x${pos.toString(16)}. Attempting to read ${what}from ${(0, util_internal_hex_1.toHex)(this.buf)}`);
152
+ }
153
+ this.oldPos = this.pos;
154
+ this.pos = pos;
155
+ }
156
+ jumpBack() {
157
+ this.pos = this.oldPos;
158
+ }
159
+ }
160
+ exports.BytesSrc = BytesSrc;
161
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/src/bytes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type Src } from '../codec';
2
+ export declare class HexSrc implements Src {
3
+ #private;
4
+ private readonly buf;
5
+ private readonly base;
6
+ private readonly endChar;
7
+ private pos;
8
+ private oldPos;
9
+ constructor(hex: string, strOffset?: number, strEnd?: number);
10
+ slice(start: number, end?: number): HexSrc;
11
+ u8(): number;
12
+ i8(): number;
13
+ u16(): number;
14
+ i16(): number;
15
+ u32(): number;
16
+ i32(): number;
17
+ u64(): bigint;
18
+ i64(): bigint;
19
+ u128(): bigint;
20
+ i128(): bigint;
21
+ u256(): bigint;
22
+ i256(): bigint;
23
+ address(): string;
24
+ bytes(): Uint8Array;
25
+ bytesHex(): string;
26
+ staticBytes(len: number): Uint8Array;
27
+ staticBytesHex(len: number): string;
28
+ string(): string;
29
+ bool(): boolean;
30
+ jump(pos: number, typeName?: string): void;
31
+ jumpBack(): void;
32
+ }
33
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/src/hex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAC,MAAM,UAAU,CAAA;AAc5C,qBAAa,MAAO,YAAW,GAAG;;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,MAAM,CAAQ;gBAEV,GAAG,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,MAAM,GAAE,MAAmB;IAQnE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAM1C,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;IAOb,GAAG,IAAI,MAAM;IAKb,IAAI,IAAI,MAAM;IAOd,IAAI,IAAI,MAAM;IAKd,IAAI,IAAI,MAAM;IAMd,IAAI,IAAI,MAAM;IAKd,OAAO,IAAI,MAAM;IAOjB,KAAK,IAAI,UAAU;IAWnB,QAAQ,IAAI,MAAM;IAUlB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IASpC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASnC,MAAM,IAAI,MAAM;IAWhB,IAAI,IAAI,OAAO;IAef,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAY1C,QAAQ,IAAI,IAAI;CAGnB"}