@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.
- package/lib/codec.d.ts +59 -12
- package/lib/codec.d.ts.map +1 -1
- package/lib/codec.js.map +1 -1
- package/lib/codecs/array.d.ts +3 -3
- package/lib/codecs/array.d.ts.map +1 -1
- package/lib/codecs/array.js +13 -7
- package/lib/codecs/array.js.map +1 -1
- package/lib/codecs/primitives.d.ts +2 -16
- package/lib/codecs/primitives.d.ts.map +1 -1
- package/lib/codecs/primitives.js +52 -141
- package/lib/codecs/primitives.js.map +1 -1
- package/lib/codecs/struct.d.ts +17 -9
- package/lib/codecs/struct.d.ts.map +1 -1
- package/lib/codecs/struct.js +53 -39
- package/lib/codecs/struct.js.map +1 -1
- package/lib/dsl.d.ts +11 -0
- package/lib/dsl.d.ts.map +1 -0
- package/lib/dsl.js +33 -0
- package/lib/dsl.js.map +1 -0
- package/lib/index.d.ts +7 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -6
- package/lib/index.js.map +1 -1
- package/lib/sink/bounds.d.ts +21 -0
- package/lib/sink/bounds.d.ts.map +1 -0
- package/lib/sink/bounds.js +24 -0
- package/lib/sink/bounds.js.map +1 -0
- package/lib/sink/bytes.d.ts +41 -0
- package/lib/sink/bytes.d.ts.map +1 -0
- package/lib/sink/bytes.js +261 -0
- package/lib/sink/bytes.js.map +1 -0
- package/lib/sink/hex.d.ts +33 -0
- package/lib/sink/hex.d.ts.map +1 -0
- package/lib/sink/hex.js +289 -0
- package/lib/sink/hex.js.map +1 -0
- package/lib/{src.d.ts → src/bytes.d.ts} +7 -5
- package/lib/src/bytes.d.ts.map +1 -0
- package/lib/src/bytes.js +161 -0
- package/lib/src/bytes.js.map +1 -0
- package/lib/src/hex.d.ts +33 -0
- package/lib/src/hex.d.ts.map +1 -0
- package/lib/src/hex.js +164 -0
- package/lib/src/hex.js.map +1 -0
- package/lib/util.d.ts +6 -0
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +20 -0
- package/lib/util.js.map +1 -0
- package/package.json +6 -8
- package/src/codec.ts +67 -18
- package/src/codecs/array.test.ts +87 -0
- package/src/codecs/array.ts +9 -12
- package/src/codecs/primitives.test.ts +27 -0
- package/src/codecs/primitives.ts +87 -191
- package/src/codecs/struct.test.ts +69 -0
- package/src/codecs/struct.ts +80 -60
- package/src/dsl.ts +16 -0
- package/src/index.ts +7 -4
- package/src/sink/bounds.ts +26 -0
- package/src/sink/bytes.test.ts +92 -0
- package/src/sink/bytes.ts +290 -0
- package/src/sink/hex.ts +311 -0
- package/src/src/bytes.test.ts +114 -0
- package/src/src/bytes.ts +187 -0
- package/src/src/hex.ts +191 -0
- package/src/util.ts +19 -0
- package/lib/safeToNumber.d.ts +0 -2
- package/lib/safeToNumber.d.ts.map +0 -1
- package/lib/safeToNumber.js +0 -11
- package/lib/safeToNumber.js.map +0 -1
- package/lib/sink.d.ts +0 -43
- package/lib/sink.d.ts.map +0 -1
- package/lib/sink.js +0 -215
- package/lib/sink.js.map +0 -1
- package/lib/src.d.ts.map +0 -1
- package/lib/src.js +0 -141
- package/lib/src.js.map +0 -1
- package/src/safeToNumber.ts +0 -6
- package/src/sink.ts +0 -241
- 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"}
|
package/lib/sink/hex.js
ADDED
|
@@ -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
|
-
|
|
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):
|
|
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
|
-
|
|
27
|
-
safeJump(pos: number, typeName: string): void;
|
|
29
|
+
jump(pos: number, typeName?: string): void;
|
|
28
30
|
jumpBack(): void;
|
|
29
31
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
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"}
|
package/lib/src/bytes.js
ADDED
|
@@ -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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"}
|
package/lib/src/hex.d.ts
ADDED
|
@@ -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"}
|