@subsquid/evm-codec 0.1.0 → 0.2.1
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/codecs/array.d.ts +10 -10
- package/lib/codecs/array.d.ts.map +1 -1
- package/lib/codecs/array.js +1 -1
- package/lib/codecs/array.js.map +1 -1
- package/lib/codecs/primitives.d.ts +36 -40
- package/lib/codecs/primitives.d.ts.map +1 -1
- package/lib/codecs/primitives.js +14 -4
- package/lib/codecs/primitives.js.map +1 -1
- package/lib/safeToNumber.js +1 -1
- package/lib/safeToNumber.js.map +1 -1
- package/lib/src.d.ts +1 -1
- package/lib/src.d.ts.map +1 -1
- package/lib/src.js +10 -10
- package/lib/src.js.map +1 -1
- package/package.json +4 -2
- package/src/codecs/array.ts +11 -11
- package/src/codecs/primitives.ts +24 -13
- package/src/safeToNumber.ts +1 -1
- package/src/src.ts +10 -10
package/lib/codecs/array.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { Codec } from '../codec';
|
|
2
2
|
import { Sink } from '../sink';
|
|
3
3
|
import { Src } from '../src';
|
|
4
|
-
export declare class ArrayCodec<const
|
|
5
|
-
readonly item: Codec<
|
|
4
|
+
export declare class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
5
|
+
readonly item: Codec<TIn, TOut>;
|
|
6
6
|
readonly isDynamic = true;
|
|
7
|
-
constructor(item: Codec<
|
|
8
|
-
encode(sink: Sink, val:
|
|
9
|
-
decode(src: Src):
|
|
7
|
+
constructor(item: Codec<TIn, TOut>);
|
|
8
|
+
encode(sink: Sink, val: TIn[]): void;
|
|
9
|
+
decode(src: Src): TOut[];
|
|
10
10
|
}
|
|
11
|
-
export declare class FixedSizeArrayCodec<const
|
|
12
|
-
readonly item: Codec<
|
|
11
|
+
export declare class FixedSizeArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
12
|
+
readonly item: Codec<TIn, TOut>;
|
|
13
13
|
readonly size: number;
|
|
14
14
|
isDynamic: boolean;
|
|
15
15
|
slotsCount: number;
|
|
16
|
-
constructor(item: Codec<
|
|
17
|
-
encode(sink: Sink, val:
|
|
16
|
+
constructor(item: Codec<TIn, TOut>, size: number);
|
|
17
|
+
encode(sink: Sink, val: TIn[]): void;
|
|
18
18
|
private encodeDynamic;
|
|
19
|
-
decode(src: Src):
|
|
19
|
+
decode(src: Src): TOut[];
|
|
20
20
|
private decodeDynamic;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=array.d.ts.map
|
|
@@ -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,CAAC,CAAE,YAAW,KAAK,CAAC,SAAS,
|
|
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"}
|
package/lib/codecs/array.js
CHANGED
package/lib/codecs/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAI3C,MAAa,UAAU;IAGrB,YAA4B,
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,47 +21,43 @@ export declare const string: {
|
|
|
21
21
|
readonly decode: (src: Src) => string;
|
|
22
22
|
readonly isDynamic: true;
|
|
23
23
|
};
|
|
24
|
-
export declare const bytes:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
export declare const
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const
|
|
32
|
-
export declare const
|
|
33
|
-
export declare const
|
|
34
|
-
export declare const
|
|
35
|
-
export declare const
|
|
36
|
-
export declare const
|
|
37
|
-
export declare const
|
|
38
|
-
export declare const
|
|
39
|
-
export declare const
|
|
40
|
-
export declare const
|
|
41
|
-
export declare const
|
|
42
|
-
export declare const
|
|
43
|
-
export declare const
|
|
44
|
-
export declare const
|
|
45
|
-
export declare const
|
|
46
|
-
export declare const
|
|
47
|
-
export declare const
|
|
48
|
-
export declare const
|
|
49
|
-
export declare const
|
|
50
|
-
export declare const
|
|
51
|
-
export declare const
|
|
52
|
-
export declare const
|
|
53
|
-
export declare const
|
|
54
|
-
export declare const
|
|
55
|
-
export declare const
|
|
56
|
-
export declare const
|
|
57
|
-
export declare const
|
|
58
|
-
export declare const bytes29: Codec<Uint8Array, Uint8Array>;
|
|
59
|
-
export declare const bytes30: Codec<Uint8Array, Uint8Array>;
|
|
60
|
-
export declare const bytes31: Codec<Uint8Array, Uint8Array>;
|
|
61
|
-
export declare const bytes32: Codec<Uint8Array, Uint8Array>;
|
|
24
|
+
export declare const bytes: Codec<Uint8Array | string, string>;
|
|
25
|
+
export declare const bytes0: Codec<string | Uint8Array, string>;
|
|
26
|
+
export declare const bytes1: Codec<string | Uint8Array, string>;
|
|
27
|
+
export declare const bytes2: Codec<string | Uint8Array, string>;
|
|
28
|
+
export declare const bytes3: Codec<string | Uint8Array, string>;
|
|
29
|
+
export declare const bytes4: Codec<string | Uint8Array, string>;
|
|
30
|
+
export declare const bytes5: Codec<string | Uint8Array, string>;
|
|
31
|
+
export declare const bytes6: Codec<string | Uint8Array, string>;
|
|
32
|
+
export declare const bytes7: Codec<string | Uint8Array, string>;
|
|
33
|
+
export declare const bytes8: Codec<string | Uint8Array, string>;
|
|
34
|
+
export declare const bytes9: Codec<string | Uint8Array, string>;
|
|
35
|
+
export declare const bytes10: Codec<string | Uint8Array, string>;
|
|
36
|
+
export declare const bytes11: Codec<string | Uint8Array, string>;
|
|
37
|
+
export declare const bytes12: Codec<string | Uint8Array, string>;
|
|
38
|
+
export declare const bytes13: Codec<string | Uint8Array, string>;
|
|
39
|
+
export declare const bytes14: Codec<string | Uint8Array, string>;
|
|
40
|
+
export declare const bytes15: Codec<string | Uint8Array, string>;
|
|
41
|
+
export declare const bytes16: Codec<string | Uint8Array, string>;
|
|
42
|
+
export declare const bytes17: Codec<string | Uint8Array, string>;
|
|
43
|
+
export declare const bytes18: Codec<string | Uint8Array, string>;
|
|
44
|
+
export declare const bytes19: Codec<string | Uint8Array, string>;
|
|
45
|
+
export declare const bytes20: Codec<string | Uint8Array, string>;
|
|
46
|
+
export declare const bytes21: Codec<string | Uint8Array, string>;
|
|
47
|
+
export declare const bytes22: Codec<string | Uint8Array, string>;
|
|
48
|
+
export declare const bytes23: Codec<string | Uint8Array, string>;
|
|
49
|
+
export declare const bytes24: Codec<string | Uint8Array, string>;
|
|
50
|
+
export declare const bytes25: Codec<string | Uint8Array, string>;
|
|
51
|
+
export declare const bytes26: Codec<string | Uint8Array, string>;
|
|
52
|
+
export declare const bytes27: Codec<string | Uint8Array, string>;
|
|
53
|
+
export declare const bytes28: Codec<string | Uint8Array, string>;
|
|
54
|
+
export declare const bytes29: Codec<string | Uint8Array, string>;
|
|
55
|
+
export declare const bytes30: Codec<string | Uint8Array, string>;
|
|
56
|
+
export declare const bytes31: Codec<string | Uint8Array, string>;
|
|
57
|
+
export declare const bytes32: Codec<string | Uint8Array, string>;
|
|
62
58
|
export declare const address: Codec<string>;
|
|
63
|
-
export declare const fixedSizeArray: <
|
|
64
|
-
export declare const array: <
|
|
59
|
+
export declare const fixedSizeArray: <TIn, TOut>(item: Codec<TIn, TOut>, size: number) => Codec<TIn[], TOut[]>;
|
|
60
|
+
export declare const array: <TIn, TOut>(item: Codec<TIn, TOut>) => Codec<TIn[], TOut[]>;
|
|
65
61
|
type Struct = {
|
|
66
62
|
[key: string]: Codec<any>;
|
|
67
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;AAEhC,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,OAAO,CAQ/B,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ1C,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQzC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ3C,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ3C,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ3C,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ1C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ5C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ3C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ5C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAQ3C,CAAA;AAED,eAAO,MAAM,MAAM;4BACJ,IAAI,OAAO,MAAM;2BAKlB,GAAG,KAAG,MAAM;;CAIzB,CAAA;AAYD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,CAUpD,CAAA;AAYD,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,oCAAY,CAAA;AAC/B,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AACjC,eAAO,MAAM,OAAO,oCAAa,CAAA;AAEjC,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,CAQjC,CAAA;AAED,eAAO,MAAM,cAAc,4CAA6C,MAAM,yBAA8D,CAAA;AAE5I,eAAO,MAAM,KAAK,6DAAoF,CAAA;AAEtG,KAAK,MAAM,GAAG;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,MAAM,2DAA4E,CAAA;AAE/F,eAAO,MAAM,KAAK,2DAAS,CAAA;AAE3B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,KAAK,0BAAQ,CAAA;AAC1B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,KAAK,0BAAQ,CAAA;AAC1B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,KAAK,0BAAQ,CAAA;AAC1B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,KAAK,0BAAQ,CAAA;AAC1B,eAAO,MAAM,MAAM,0BAAU,CAAA;AAC7B,eAAO,MAAM,KAAK,0BAAS,CAAA;AAC3B,eAAO,MAAM,MAAM,0BAAU,CAAA;AAC7B,eAAO,MAAM,KAAK,0BAAS,CAAA;AAC3B,eAAO,MAAM,MAAM,0BAAU,CAAA;AAC7B,eAAO,MAAM,KAAK,0BAAS,CAAA;AAC3B,eAAO,MAAM,MAAM,0BAAU,CAAA;AAC7B,eAAO,MAAM,KAAK,0BAAS,CAAA;AAC3B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA;AAC5B,eAAO,MAAM,OAAO,0BAAU,CAAA;AAC9B,eAAO,MAAM,MAAM,0BAAS,CAAA"}
|
package/lib/codecs/primitives.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.fixedSizeArray = exports.address = exports.bytes32 = exports.bytes31 = exports.bytes30 = exports.bytes29 = exports.bytes28 = exports.bytes27 = exports.bytes26 = exports.bytes25 = exports.bytes24 = exports.bytes23 = exports.bytes22 = exports.bytes21 = exports.bytes20 = exports.bytes19 = exports.bytes18 = exports.bytes17 = exports.bytes16 = exports.bytes15 = exports.bytes14 = exports.bytes13 = exports.bytes12 = exports.bytes11 = exports.bytes10 = exports.bytes9 = exports.bytes8 = exports.bytes7 = exports.bytes6 = exports.bytes5 = exports.bytes4 = exports.bytes3 = exports.bytes2 = exports.bytes1 = exports.bytes0 = exports.bytes = exports.string = exports.int256 = exports.uint256 = exports.int128 = exports.uint128 = exports.int64 = exports.uint64 = exports.int32 = exports.uint32 = exports.int16 = exports.uint16 = exports.int8 = exports.uint8 = exports.bool = void 0;
|
|
4
4
|
exports.uint232 = exports.int224 = exports.uint224 = exports.int216 = exports.uint216 = exports.int208 = exports.uint208 = exports.int200 = exports.uint200 = exports.int192 = exports.uint192 = exports.int184 = exports.uint184 = exports.int176 = exports.uint176 = exports.int168 = exports.uint168 = exports.int160 = exports.uint160 = exports.int152 = exports.uint152 = exports.int144 = exports.uint144 = exports.int136 = exports.uint136 = exports.int120 = exports.uint120 = exports.int112 = exports.uint112 = exports.int104 = exports.uint104 = exports.int96 = exports.uint96 = exports.int88 = exports.uint88 = exports.int80 = exports.uint80 = exports.int72 = exports.uint72 = exports.int56 = exports.uint56 = exports.int48 = exports.uint48 = exports.int40 = exports.uint40 = exports.int24 = exports.uint24 = exports.tuple = exports.struct = exports.array = void 0;
|
|
5
5
|
exports.int248 = exports.uint248 = exports.int240 = exports.uint240 = exports.int232 = void 0;
|
|
6
|
+
const util_internal_hex_1 = require("@subsquid/util-internal-hex");
|
|
6
7
|
const array_1 = require("./array");
|
|
7
8
|
const struct_1 = require("./struct");
|
|
8
9
|
const safeToNumber_1 = require("../safeToNumber");
|
|
@@ -134,23 +135,32 @@ exports.string = {
|
|
|
134
135
|
},
|
|
135
136
|
isDynamic: true,
|
|
136
137
|
};
|
|
138
|
+
function toBuffer(val) {
|
|
139
|
+
if (val instanceof Uint8Array) {
|
|
140
|
+
return val;
|
|
141
|
+
}
|
|
142
|
+
if (!(0, util_internal_hex_1.isHex)(val)) {
|
|
143
|
+
throw new Error(`Expected hex string or buffer, got: ${val}`);
|
|
144
|
+
}
|
|
145
|
+
return (0, util_internal_hex_1.decodeHex)(val);
|
|
146
|
+
}
|
|
137
147
|
exports.bytes = {
|
|
138
148
|
encode(sink, val) {
|
|
139
149
|
sink.newStaticDataArea();
|
|
140
|
-
sink.bytes(val);
|
|
150
|
+
sink.bytes(toBuffer(val));
|
|
141
151
|
sink.endCurrentDataArea();
|
|
142
152
|
},
|
|
143
153
|
decode(src) {
|
|
144
|
-
return src.bytes();
|
|
154
|
+
return (0, util_internal_hex_1.toHex)(src.bytes());
|
|
145
155
|
},
|
|
146
156
|
isDynamic: true,
|
|
147
157
|
};
|
|
148
158
|
const bytesN = (size) => ({
|
|
149
159
|
encode(sink, val) {
|
|
150
|
-
sink.staticBytes(size, val);
|
|
160
|
+
sink.staticBytes(size, toBuffer(val));
|
|
151
161
|
},
|
|
152
162
|
decode(src) {
|
|
153
|
-
return src.staticBytes(size);
|
|
163
|
+
return (0, util_internal_hex_1.toHex)(src.staticBytes(size));
|
|
154
164
|
},
|
|
155
165
|
isDynamic: false,
|
|
156
166
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/codecs/primitives.ts"],"names":[],"mappings":";;;;;AAAA,mEAAqE;AAIrE,mCAAyD;AACzD,qCAAsC;AACtC,kDAA8C;AAIjC,QAAA,IAAI,GAAmB;IAClC,MAAM,EAAE,UAAU,IAAU,EAAE,GAAY;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,KAAK,GAA6B;IAC7C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,EAAE,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,EAAE,EAAE,CAAA;IACjB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,IAAI,GAA6B;IAC5C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,EAAE,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,EAAE,EAAE,CAAA;IACjB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAA6B;IAC9C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,KAAK,GAA6B;IAC7C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAA6B;IAC9C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,KAAK,GAA6B;IAC7C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAA,2BAAY,EAAC,GAAG,CAAC,CAAC,CAAA;IAC7B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAA6B;IAC9C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,KAAK,GAA6B;IAC7C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,OAAO,GAA6B;IAC/C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAA6B;IAC9C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,OAAO,GAA6B;IAC/C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAA6B;IAC9C,MAAM,CAAC,IAAU,EAAE,GAAc;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEY,QAAA,MAAM,GAAU;IAC3B,MAAM,CAAC,IAAU,EAAE,GAAW;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC;IACD,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,SAAS,QAAQ,CAAC,GAAwB;IACxC,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,IAAA,yBAAK,EAAC,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,IAAA,6BAAS,EAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAEY,QAAA,KAAK,GAA+C;IAC/D,MAAM,CAAC,IAAU,EAAE,GAAwB;QACzC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,IAAA,yBAAK,EAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAC3B,CAAC;IACD,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsC,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,IAAU,EAAE,GAAwB;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,IAAA,yBAAK,EAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AAEpB,QAAA,OAAO,GAAkB;IACpC,MAAM,CAAC,IAAU,EAAE,GAAW;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IACD,MAAM,CAAC,GAAQ;QACb,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;IACD,SAAS,EAAE,KAAK;CACjB,CAAA;AAEM,MAAM,cAAc,GAAG,CAAY,IAAsB,EAAE,IAAY,EAAwB,EAAE,CAAC,IAAI,2BAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAA/H,QAAA,cAAc,kBAAiH;AAErI,MAAM,KAAK,GAAG,CAAY,IAAsB,EAAwB,EAAE,CAAC,IAAI,kBAAU,CAAC,IAAI,CAAC,CAAA;AAAzF,QAAA,KAAK,SAAoF;AAM/F,MAAM,MAAM,GAAG,CAAyB,UAAa,EAAE,EAAE,CAAC,IAAI,oBAAW,CAAI,UAAU,CAAC,CAAA;AAAlF,QAAA,MAAM,UAA4E;AAElF,QAAA,KAAK,GAAG,cAAM,CAAA;AAEd,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,KAAK,GAAG,aAAK,CAAA;AACb,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,KAAK,GAAG,aAAK,CAAA;AACb,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,KAAK,GAAG,aAAK,CAAA;AACb,QAAA,MAAM,GAAG,cAAM,CAAA;AACf,QAAA,KAAK,GAAG,aAAK,CAAA;AACb,QAAA,MAAM,GAAG,eAAO,CAAA;AAChB,QAAA,KAAK,GAAG,cAAM,CAAA;AACd,QAAA,MAAM,GAAG,eAAO,CAAA;AAChB,QAAA,KAAK,GAAG,cAAM,CAAA;AACd,QAAA,MAAM,GAAG,eAAO,CAAA;AAChB,QAAA,KAAK,GAAG,cAAM,CAAA;AACd,QAAA,MAAM,GAAG,eAAO,CAAA;AAChB,QAAA,KAAK,GAAG,cAAM,CAAA;AACd,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;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"}
|
package/lib/safeToNumber.js
CHANGED
|
@@ -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 (
|
|
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);
|
package/lib/safeToNumber.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeToNumber.js","sourceRoot":"","sources":["../src/safeToNumber.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,KAAsB;IACjD,
|
|
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
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;
|
|
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.
|
|
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.
|
|
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(
|
|
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":";;;;;;;;;AAAA,mCAAmC;AAEnC,MAAa,GAAG;IAId,YAAoB,GAAe;;QAAf,QAAG,GAAH,GAAG,CAAY;QAF3B,QAAG,GAAG,CAAC,CAAA;QACP,WAAM,GAAG,CAAC,CAAA;QAEhB,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,GAAY;QAC/B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,EAAE;QACA,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,CAAC,CAAA;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACb,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,EAAE;QACA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG;QACD,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,CAAC,CAAA;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACb,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,GAAG;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG;QACD,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,CAAC,CAAA;QACzB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACb,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,GAAG;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG;QACD,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,CAAC,CAAA;QACzB,OAAO,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,CAAC;IAQD,GAAG;QACD,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,CAAC,CAAA;QACzB,OAAO,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,CAAC;IAQD,IAAI;QACF,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,EAAE,CAAA;QAC1B,OAAO,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;IACrB,CAAC;IAQD,IAAI;QACF,IAAI,CAAC,GAAG,IAAI,iBAAS,GAAG,EAAE,CAAA;QAC1B,OAAO,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;IACrB,CAAC;IAQD,IAAI;QACF,IAAI,EAAE,GAAG,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;QACrB,IAAI,EAAE,GAAG,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;QACrB,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI;QACF,IAAI,EAAE,GAAG,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;QACrB,IAAI,EAAE,GAAG,uBAAA,IAAI,iCAAM,MAAV,IAAI,CAAQ,CAAA;QACrB,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,sBAAsB,CAAC,CAAA;QACpD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;QACvD,IAAI,CAAC,GAAG,IAAI,iBAAS,CAAA;QACrB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC/F,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI;QACF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACpB,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,QAAgB;QAChD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,UAAU,CAAC,+CAA+C,QAAQ,cAAc,GAAG,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAClJ,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,GAAW,EAAE,QAAgB;QAC3C,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,UAAU,CAAC,kCAAkC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,wBAAwB,QAAQ,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5J,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;IACxB,CAAC;CACF;AA3JD,kBA2JC;;IAxGG,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACjD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACb,OAAO,GAAG,CAAA;AACZ,CAAC;IAQC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAChD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACb,OAAO,GAAG,CAAA;AACZ,CAAC;IAQC,IAAI,EAAE,GAAG,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,IAAI,EAAE,GAAG,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAA;AACzB,CAAC;IAQC,IAAI,EAAE,GAAG,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,IAAI,EAAE,GAAG,uBAAA,IAAI,gCAAK,MAAT,IAAI,CAAO,CAAA;IACpB,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAA;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/evm-codec",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "EVM encoder/decoder tools",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"repository": "git@github.com:subsquid/squid.git",
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
"lib",
|
|
13
13
|
"src"
|
|
14
14
|
],
|
|
15
|
-
"dependencies": {
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@subsquid/util-internal-hex": "^1.2.2"
|
|
17
|
+
},
|
|
16
18
|
"devDependencies": {
|
|
17
19
|
"@types/node": "^18.18.14",
|
|
18
20
|
"ethers": "^6.9.0",
|
package/src/codecs/array.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { Codec, WORD_SIZE } from '../codec'
|
|
|
2
2
|
import { Sink } from '../sink'
|
|
3
3
|
import { Src } from '../src'
|
|
4
4
|
|
|
5
|
-
export class ArrayCodec<const
|
|
5
|
+
export class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
6
6
|
public readonly isDynamic = true
|
|
7
7
|
|
|
8
|
-
constructor(public readonly item: Codec<
|
|
8
|
+
constructor(public readonly item: Codec<TIn, TOut>) {}
|
|
9
9
|
|
|
10
|
-
encode(sink: Sink, val:
|
|
10
|
+
encode(sink: Sink, val: TIn[]) {
|
|
11
11
|
sink.newDynamicDataArea(val.length)
|
|
12
12
|
for (let i = 0; i < val.length; i++) {
|
|
13
13
|
this.item.encode(sink, val[i])
|
|
@@ -16,10 +16,10 @@ export class ArrayCodec<const T> implements Codec<readonly T[]> {
|
|
|
16
16
|
sink.endCurrentDataArea()
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
decode(src: Src):
|
|
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)
|
|
@@ -32,15 +32,15 @@ export class ArrayCodec<const T> implements Codec<readonly T[]> {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export class FixedSizeArrayCodec<const
|
|
35
|
+
export class FixedSizeArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
36
36
|
public isDynamic: boolean
|
|
37
37
|
public slotsCount: number
|
|
38
|
-
constructor(public readonly item: Codec<
|
|
38
|
+
constructor(public readonly item: Codec<TIn, TOut>, public readonly size: number) {
|
|
39
39
|
this.isDynamic = item.isDynamic && size > 0
|
|
40
40
|
this.slotsCount = this.isDynamic ? 1 : size
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
encode(sink: Sink, val:
|
|
43
|
+
encode(sink: Sink, val: TIn[]) {
|
|
44
44
|
if (val.length !== this.size) {
|
|
45
45
|
throw new Error(`invalid array length: ${val.length}. Expected: ${this.size}`)
|
|
46
46
|
}
|
|
@@ -52,7 +52,7 @@ export class FixedSizeArrayCodec<const T> implements Codec<readonly T[]> {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
private encodeDynamic(sink: Sink, val:
|
|
55
|
+
private encodeDynamic(sink: Sink, val: TIn[]) {
|
|
56
56
|
sink.newStaticDataArea(this.size)
|
|
57
57
|
for (let i = 0; i < val.length; i++) {
|
|
58
58
|
this.item.encode(sink, val[i])
|
|
@@ -60,7 +60,7 @@ export class FixedSizeArrayCodec<const T> implements Codec<readonly T[]> {
|
|
|
60
60
|
sink.endCurrentDataArea()
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
decode(src: Src):
|
|
63
|
+
decode(src: Src): TOut[] {
|
|
64
64
|
if (this.isDynamic) {
|
|
65
65
|
return this.decodeDynamic(src)
|
|
66
66
|
}
|
|
@@ -71,7 +71,7 @@ export class FixedSizeArrayCodec<const T> implements Codec<readonly T[]> {
|
|
|
71
71
|
return val
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
private decodeDynamic(src: Src):
|
|
74
|
+
private decodeDynamic(src: Src): TOut[] {
|
|
75
75
|
const offset = src.u32()
|
|
76
76
|
const tmpSrc = src.slice(offset)
|
|
77
77
|
let val = new Array(this.size)
|
package/src/codecs/primitives.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { decodeHex, isHex, toHex } from '@subsquid/util-internal-hex'
|
|
1
2
|
import { Codec } from '../codec'
|
|
2
3
|
import { Sink } from '../sink'
|
|
3
4
|
import { Src } from '../src'
|
|
4
5
|
import { ArrayCodec, FixedSizeArrayCodec } from './array'
|
|
5
6
|
import { StructCodec } from './struct'
|
|
6
|
-
import { safeToNumber } from
|
|
7
|
+
import { safeToNumber } from '../safeToNumber'
|
|
7
8
|
|
|
8
9
|
type Numberish = number | bigint
|
|
9
10
|
|
|
@@ -149,24 +150,34 @@ export const string = <const>{
|
|
|
149
150
|
isDynamic: true,
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
function toBuffer(val: Uint8Array | string): Uint8Array {
|
|
154
|
+
if (val instanceof Uint8Array) {
|
|
155
|
+
return val
|
|
156
|
+
}
|
|
157
|
+
if (!isHex(val)) {
|
|
158
|
+
throw new Error(`Expected hex string or buffer, got: ${val}`)
|
|
159
|
+
}
|
|
160
|
+
return decodeHex(val)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export const bytes: Codec<Uint8Array | string, string> = <const>{
|
|
164
|
+
encode(sink: Sink, val: Uint8Array | string) {
|
|
154
165
|
sink.newStaticDataArea()
|
|
155
|
-
sink.bytes(val)
|
|
166
|
+
sink.bytes(toBuffer(val))
|
|
156
167
|
sink.endCurrentDataArea()
|
|
157
168
|
},
|
|
158
|
-
decode(src: Src):
|
|
159
|
-
return src.bytes()
|
|
169
|
+
decode(src: Src): string {
|
|
170
|
+
return toHex(src.bytes())
|
|
160
171
|
},
|
|
161
172
|
isDynamic: true,
|
|
162
173
|
}
|
|
163
174
|
|
|
164
|
-
const bytesN = (size: number): Codec<Uint8Array> => ({
|
|
165
|
-
encode(sink: Sink, val: Uint8Array) {
|
|
166
|
-
sink.staticBytes(size, val)
|
|
175
|
+
const bytesN = (size: number): Codec<Uint8Array | string, string> => ({
|
|
176
|
+
encode(sink: Sink, val: Uint8Array | string) {
|
|
177
|
+
sink.staticBytes(size, toBuffer(val))
|
|
167
178
|
},
|
|
168
|
-
decode(src: Src):
|
|
169
|
-
return src.staticBytes(size)
|
|
179
|
+
decode(src: Src): string {
|
|
180
|
+
return toHex(src.staticBytes(size))
|
|
170
181
|
},
|
|
171
182
|
isDynamic: false,
|
|
172
183
|
})
|
|
@@ -215,9 +226,9 @@ export const address: Codec<string> = {
|
|
|
215
226
|
isDynamic: false,
|
|
216
227
|
}
|
|
217
228
|
|
|
218
|
-
export const fixedSizeArray = <
|
|
229
|
+
export const fixedSizeArray = <TIn, TOut>(item: Codec<TIn, TOut>, size: number): Codec<TIn[], TOut[]> => new FixedSizeArrayCodec(item, size)
|
|
219
230
|
|
|
220
|
-
export const array = <
|
|
231
|
+
export const array = <TIn, TOut>(item: Codec<TIn, TOut>): Codec<TIn[], TOut[]> => new ArrayCodec(item)
|
|
221
232
|
|
|
222
233
|
type Struct = {
|
|
223
234
|
[key: string]: Codec<any>
|
package/src/safeToNumber.ts
CHANGED
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.
|
|
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.
|
|
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(
|
|
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
|