@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
package/lib/codec.d.ts
CHANGED
|
@@ -1,23 +1,70 @@
|
|
|
1
|
-
import type { Sink } from './sink';
|
|
2
|
-
import type { Src } from './src';
|
|
3
1
|
export declare const WORD_SIZE = 32;
|
|
2
|
+
export type BaseType = 'int' | 'address' | 'bool' | 'bytes' | 'string' | 'array' | 'struct';
|
|
3
|
+
/** ABI encoder backend — writes one 32-byte word per call, manages the head/tail structure. */
|
|
4
|
+
export interface Sink {
|
|
5
|
+
u8(val: number): void;
|
|
6
|
+
i8(val: number): void;
|
|
7
|
+
u16(val: number): void;
|
|
8
|
+
i16(val: number): void;
|
|
9
|
+
u32(val: number): void;
|
|
10
|
+
i32(val: number): void;
|
|
11
|
+
u64(val: bigint): void;
|
|
12
|
+
i64(val: bigint): void;
|
|
13
|
+
u128(val: bigint): void;
|
|
14
|
+
i128(val: bigint): void;
|
|
15
|
+
u256(val: bigint): void;
|
|
16
|
+
i256(val: bigint): void;
|
|
17
|
+
bool(val: boolean): void;
|
|
18
|
+
bytes(val: Uint8Array | string): void;
|
|
19
|
+
staticBytes(len: number, val: Uint8Array | string): void;
|
|
20
|
+
address(val: string): void;
|
|
21
|
+
string(val: string): void;
|
|
22
|
+
/** Begin the tail of a dynamic type (writes the head offset, enters tail context). */
|
|
23
|
+
openTail(slotsCount?: number): void;
|
|
24
|
+
/** Begin the tail of a dynamic array (writes offset + element count, enters tail context). */
|
|
25
|
+
openArray(count: number): void;
|
|
26
|
+
/** End the current tail, propagate its size to the parent context. */
|
|
27
|
+
closeTail(): void;
|
|
28
|
+
toString(): string;
|
|
29
|
+
}
|
|
30
|
+
/** ABI decoder backend — reads one 32-byte word per call, follows offset pointers. */
|
|
31
|
+
export interface Src {
|
|
32
|
+
u8(): number;
|
|
33
|
+
i8(): number;
|
|
34
|
+
u16(): number;
|
|
35
|
+
i16(): number;
|
|
36
|
+
u32(): number;
|
|
37
|
+
i32(): number;
|
|
38
|
+
u64(): bigint;
|
|
39
|
+
i64(): bigint;
|
|
40
|
+
u128(): bigint;
|
|
41
|
+
i128(): bigint;
|
|
42
|
+
u256(): bigint;
|
|
43
|
+
i256(): bigint;
|
|
44
|
+
bool(): boolean;
|
|
45
|
+
bytes(): Uint8Array;
|
|
46
|
+
/** Decode a dynamic `bytes` value as a `0x`-prefixed hex string. */
|
|
47
|
+
bytesHex(): string;
|
|
48
|
+
staticBytes(len: number): Uint8Array;
|
|
49
|
+
/** Decode a `bytes<N>` value as a `0x`-prefixed hex string. */
|
|
50
|
+
staticBytesHex(len: number): string;
|
|
51
|
+
address(): string;
|
|
52
|
+
string(): string;
|
|
53
|
+
/** Create a sub-view of this source starting at byte offset `start`. */
|
|
54
|
+
slice(start: number, end?: number): Src;
|
|
55
|
+
/** Follow an offset pointer: save the current position and jump to `pos`. */
|
|
56
|
+
jump(pos: number, typeName?: string): void;
|
|
57
|
+
/** Return to the position saved by the last `jump`. */
|
|
58
|
+
jumpBack(): void;
|
|
59
|
+
}
|
|
4
60
|
export interface Codec<TIn, TOut = TIn> {
|
|
5
61
|
encode(sink: Sink, val: TIn): void;
|
|
6
62
|
decode(src: Src): TOut;
|
|
7
63
|
isDynamic: boolean;
|
|
8
64
|
slotsCount?: number;
|
|
65
|
+
baseType: BaseType;
|
|
9
66
|
}
|
|
10
67
|
export type Struct = {
|
|
11
68
|
[key: string]: Codec<any>;
|
|
12
69
|
};
|
|
13
|
-
type Pretty<T> = {
|
|
14
|
-
[K in keyof T]: T[K];
|
|
15
|
-
} & unknown;
|
|
16
|
-
export type DecodedStruct<T extends Struct> = Pretty<{
|
|
17
|
-
[K in keyof T]: T[K] extends Codec<any, infer U> ? U : never;
|
|
18
|
-
}>;
|
|
19
|
-
export type EncodedStruct<T extends Struct> = Pretty<{
|
|
20
|
-
[K in keyof T]: T[K] extends Codec<infer U, any> ? U : never;
|
|
21
|
-
}>;
|
|
22
|
-
export {};
|
|
23
70
|
//# sourceMappingURL=codec.d.ts.map
|
package/lib/codec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
|
package/lib/codec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,EAAE,CAAA"}
|
package/lib/codecs/array.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Codec } from '../codec';
|
|
2
|
-
import { Sink } from '../sink';
|
|
3
|
-
import { Src } from '../src';
|
|
1
|
+
import { type Codec, type Sink, type Src } from '../codec';
|
|
4
2
|
export declare class ArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
5
3
|
readonly item: Codec<TIn, TOut>;
|
|
6
4
|
readonly isDynamic = true;
|
|
5
|
+
readonly baseType = "array";
|
|
7
6
|
constructor(item: Codec<TIn, TOut>);
|
|
8
7
|
encode(sink: Sink, val: TIn[]): void;
|
|
9
8
|
decode(src: Src): TOut[];
|
|
@@ -11,6 +10,7 @@ export declare class ArrayCodec<const TIn, const TOut> implements Codec<readonly
|
|
|
11
10
|
export declare class FixedSizeArrayCodec<const TIn, const TOut> implements Codec<readonly TIn[], readonly TOut[]> {
|
|
12
11
|
readonly item: Codec<TIn, TOut>;
|
|
13
12
|
readonly size: number;
|
|
13
|
+
readonly baseType = "array";
|
|
14
14
|
isDynamic: boolean;
|
|
15
15
|
slotsCount: number;
|
|
16
16
|
constructor(item: Codec<TIn, TOut>, size: number);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAErE,qBAAa,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAGlE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAFlD,SAAgB,SAAS,QAAO;IAChC,SAAgB,QAAQ,WAAU;gBACN,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAQ7B,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;CAYzB;AAED,qBAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAE,YAAW,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;aAK3E,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;aAAkB,IAAI,EAAE,MAAM;IAJhF,SAAgB,QAAQ,WAAU;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;gBAEG,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAkB,IAAI,EAAE,MAAM;IAKhF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;IAY7B,OAAO,CAAC,aAAa;IAQrB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;IAWxB,OAAO,CAAC,aAAa;CAStB"}
|
package/lib/codecs/array.js
CHANGED
|
@@ -3,21 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FixedSizeArrayCodec = exports.ArrayCodec = void 0;
|
|
4
4
|
const codec_1 = require("../codec");
|
|
5
5
|
class ArrayCodec {
|
|
6
|
+
item;
|
|
7
|
+
isDynamic = true;
|
|
8
|
+
baseType = 'array';
|
|
6
9
|
constructor(item) {
|
|
7
10
|
this.item = item;
|
|
8
|
-
this.isDynamic = true;
|
|
9
11
|
}
|
|
10
12
|
encode(sink, val) {
|
|
11
|
-
sink.
|
|
13
|
+
sink.openArray(val.length);
|
|
12
14
|
for (let i = 0; i < val.length; i++) {
|
|
13
15
|
this.item.encode(sink, val[i]);
|
|
14
16
|
}
|
|
15
|
-
sink.
|
|
16
|
-
sink.endCurrentDataArea();
|
|
17
|
+
sink.closeTail();
|
|
17
18
|
}
|
|
18
19
|
decode(src) {
|
|
19
20
|
const offset = src.u32();
|
|
20
|
-
src.
|
|
21
|
+
src.jump(offset);
|
|
21
22
|
const len = src.u32();
|
|
22
23
|
const tmpSrc = src.slice(offset + codec_1.WORD_SIZE);
|
|
23
24
|
const val = new Array(len);
|
|
@@ -30,6 +31,11 @@ class ArrayCodec {
|
|
|
30
31
|
}
|
|
31
32
|
exports.ArrayCodec = ArrayCodec;
|
|
32
33
|
class FixedSizeArrayCodec {
|
|
34
|
+
item;
|
|
35
|
+
size;
|
|
36
|
+
baseType = 'array';
|
|
37
|
+
isDynamic;
|
|
38
|
+
slotsCount;
|
|
33
39
|
constructor(item, size) {
|
|
34
40
|
this.item = item;
|
|
35
41
|
this.size = size;
|
|
@@ -48,11 +54,11 @@ class FixedSizeArrayCodec {
|
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
encodeDynamic(sink, val) {
|
|
51
|
-
sink.
|
|
57
|
+
sink.openTail(this.size);
|
|
52
58
|
for (let i = 0; i < val.length; i++) {
|
|
53
59
|
this.item.encode(sink, val[i]);
|
|
54
60
|
}
|
|
55
|
-
sink.
|
|
61
|
+
sink.closeTail();
|
|
56
62
|
}
|
|
57
63
|
decode(src) {
|
|
58
64
|
if (this.isDynamic) {
|
package/lib/codecs/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/codecs/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { Codec } from '../codec';
|
|
2
|
-
import { Sink } from '../sink';
|
|
3
|
-
import { Src } from '../src';
|
|
4
|
-
import { StructCodec } from './struct';
|
|
1
|
+
import type { Codec } from '../codec';
|
|
5
2
|
type Numberish = number | bigint;
|
|
6
3
|
export declare const bool: Codec<boolean>;
|
|
7
4
|
export declare const uint8: Codec<Numberish, number>;
|
|
@@ -16,11 +13,7 @@ export declare const uint128: Codec<Numberish, bigint>;
|
|
|
16
13
|
export declare const int128: Codec<Numberish, bigint>;
|
|
17
14
|
export declare const uint256: Codec<Numberish, bigint>;
|
|
18
15
|
export declare const int256: Codec<Numberish, bigint>;
|
|
19
|
-
export declare const string:
|
|
20
|
-
readonly encode: (sink: Sink, val: string) => void;
|
|
21
|
-
readonly decode: (src: Src) => string;
|
|
22
|
-
readonly isDynamic: true;
|
|
23
|
-
};
|
|
16
|
+
export declare const string: Codec<string>;
|
|
24
17
|
export declare const bytes: Codec<Uint8Array | string, string>;
|
|
25
18
|
export declare const bytes0: Codec<string | Uint8Array, string>;
|
|
26
19
|
export declare const bytes1: Codec<string | Uint8Array, string>;
|
|
@@ -56,13 +49,6 @@ export declare const bytes30: Codec<string | Uint8Array, string>;
|
|
|
56
49
|
export declare const bytes31: Codec<string | Uint8Array, string>;
|
|
57
50
|
export declare const bytes32: Codec<string | Uint8Array, string>;
|
|
58
51
|
export declare const address: Codec<string>;
|
|
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[]>;
|
|
61
|
-
type Struct = {
|
|
62
|
-
[key: string]: Codec<any>;
|
|
63
|
-
};
|
|
64
|
-
export declare const struct: <const T extends Struct>(components: T) => StructCodec<T>;
|
|
65
|
-
export declare const tuple: <const T extends Struct>(components: T) => StructCodec<T>;
|
|
66
52
|
export declare const uint24: Codec<Numberish, number>;
|
|
67
53
|
export declare const int24: Codec<Numberish, number>;
|
|
68
54
|
export declare const uint40: Codec<Numberish, bigint>;
|
|
@@ -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":"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AA;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
|
@@ -1,168 +1,85 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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 =
|
|
5
|
-
exports.int248 =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
exports.uint24 = 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
|
+
exports.uint248 = exports.int240 = exports.uint240 = exports.int232 = 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 = void 0;
|
|
5
|
+
exports.int248 = void 0;
|
|
6
|
+
function safeToNumber(value) {
|
|
7
|
+
if (value < Number.MIN_SAFE_INTEGER || value > Number.MAX_SAFE_INTEGER) {
|
|
8
|
+
throw new Error(`${value} is not a safe integer`);
|
|
9
|
+
}
|
|
10
|
+
return Number(value);
|
|
11
|
+
}
|
|
12
|
+
function numberCodec(method) {
|
|
13
|
+
return {
|
|
14
|
+
encode: (sink, val) => sink[method](safeToNumber(val)),
|
|
15
|
+
decode: (src) => src[method](),
|
|
16
|
+
isDynamic: false,
|
|
17
|
+
baseType: 'int',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function bigintCodec(method) {
|
|
21
|
+
return {
|
|
22
|
+
encode: (sink, val) => sink[method](BigInt(val)),
|
|
23
|
+
decode: (src) => src[method](),
|
|
24
|
+
isDynamic: false,
|
|
25
|
+
baseType: 'int',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
10
28
|
exports.bool = {
|
|
11
|
-
encode
|
|
29
|
+
encode(sink, val) {
|
|
12
30
|
sink.bool(val);
|
|
13
31
|
},
|
|
14
32
|
decode(src) {
|
|
15
33
|
return src.bool();
|
|
16
34
|
},
|
|
17
35
|
isDynamic: false,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
exports.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
decode(src) {
|
|
33
|
-
return src.i8();
|
|
34
|
-
},
|
|
35
|
-
isDynamic: false,
|
|
36
|
-
};
|
|
37
|
-
exports.uint16 = {
|
|
38
|
-
encode(sink, val) {
|
|
39
|
-
sink.u16((0, safeToNumber_1.safeToNumber)(val));
|
|
40
|
-
},
|
|
41
|
-
decode(src) {
|
|
42
|
-
return src.u16();
|
|
43
|
-
},
|
|
44
|
-
isDynamic: false,
|
|
45
|
-
};
|
|
46
|
-
exports.int16 = {
|
|
47
|
-
encode(sink, val) {
|
|
48
|
-
sink.i16((0, safeToNumber_1.safeToNumber)(val));
|
|
49
|
-
},
|
|
50
|
-
decode(src) {
|
|
51
|
-
return src.i16();
|
|
52
|
-
},
|
|
53
|
-
isDynamic: false,
|
|
54
|
-
};
|
|
55
|
-
exports.uint32 = {
|
|
56
|
-
encode(sink, val) {
|
|
57
|
-
sink.u32((0, safeToNumber_1.safeToNumber)(val));
|
|
58
|
-
},
|
|
59
|
-
decode(src) {
|
|
60
|
-
return src.u32();
|
|
61
|
-
},
|
|
62
|
-
isDynamic: false,
|
|
63
|
-
};
|
|
64
|
-
exports.int32 = {
|
|
65
|
-
encode(sink, val) {
|
|
66
|
-
sink.i32((0, safeToNumber_1.safeToNumber)(val));
|
|
67
|
-
},
|
|
68
|
-
decode(src) {
|
|
69
|
-
return src.i32();
|
|
70
|
-
},
|
|
71
|
-
isDynamic: false,
|
|
72
|
-
};
|
|
73
|
-
exports.uint64 = {
|
|
74
|
-
encode(sink, val) {
|
|
75
|
-
sink.u64(BigInt(val));
|
|
76
|
-
},
|
|
77
|
-
decode(src) {
|
|
78
|
-
return src.u64();
|
|
79
|
-
},
|
|
80
|
-
isDynamic: false,
|
|
81
|
-
};
|
|
82
|
-
exports.int64 = {
|
|
83
|
-
encode(sink, val) {
|
|
84
|
-
sink.i64(BigInt(val));
|
|
85
|
-
},
|
|
86
|
-
decode(src) {
|
|
87
|
-
return src.i64();
|
|
88
|
-
},
|
|
89
|
-
isDynamic: false,
|
|
90
|
-
};
|
|
91
|
-
exports.uint128 = {
|
|
92
|
-
encode(sink, val) {
|
|
93
|
-
sink.u128(BigInt(val));
|
|
94
|
-
},
|
|
95
|
-
decode(src) {
|
|
96
|
-
return src.u128();
|
|
97
|
-
},
|
|
98
|
-
isDynamic: false,
|
|
99
|
-
};
|
|
100
|
-
exports.int128 = {
|
|
101
|
-
encode(sink, val) {
|
|
102
|
-
sink.i128(BigInt(val));
|
|
103
|
-
},
|
|
104
|
-
decode(src) {
|
|
105
|
-
return src.i128();
|
|
106
|
-
},
|
|
107
|
-
isDynamic: false,
|
|
108
|
-
};
|
|
109
|
-
exports.uint256 = {
|
|
110
|
-
encode(sink, val) {
|
|
111
|
-
sink.u256(BigInt(val));
|
|
112
|
-
},
|
|
113
|
-
decode(src) {
|
|
114
|
-
return src.u256();
|
|
115
|
-
},
|
|
116
|
-
isDynamic: false,
|
|
117
|
-
};
|
|
118
|
-
exports.int256 = {
|
|
119
|
-
encode(sink, val) {
|
|
120
|
-
sink.i256(BigInt(val));
|
|
121
|
-
},
|
|
122
|
-
decode(src) {
|
|
123
|
-
return src.i256();
|
|
124
|
-
},
|
|
125
|
-
isDynamic: false,
|
|
126
|
-
};
|
|
36
|
+
baseType: 'bool',
|
|
37
|
+
};
|
|
38
|
+
exports.uint8 = numberCodec('u8');
|
|
39
|
+
exports.int8 = numberCodec('i8');
|
|
40
|
+
exports.uint16 = numberCodec('u16');
|
|
41
|
+
exports.int16 = numberCodec('i16');
|
|
42
|
+
exports.uint32 = numberCodec('u32');
|
|
43
|
+
exports.int32 = numberCodec('i32');
|
|
44
|
+
exports.uint64 = bigintCodec('u64');
|
|
45
|
+
exports.int64 = bigintCodec('i64');
|
|
46
|
+
exports.uint128 = bigintCodec('u128');
|
|
47
|
+
exports.int128 = bigintCodec('i128');
|
|
48
|
+
exports.uint256 = bigintCodec('u256');
|
|
49
|
+
exports.int256 = bigintCodec('i256');
|
|
127
50
|
exports.string = {
|
|
128
51
|
encode(sink, val) {
|
|
129
|
-
sink.
|
|
52
|
+
sink.openTail();
|
|
130
53
|
sink.string(val);
|
|
131
|
-
sink.
|
|
54
|
+
sink.closeTail();
|
|
132
55
|
},
|
|
133
56
|
decode(src) {
|
|
134
57
|
return src.string();
|
|
135
58
|
},
|
|
136
59
|
isDynamic: true,
|
|
60
|
+
baseType: 'string',
|
|
137
61
|
};
|
|
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
|
-
}
|
|
147
62
|
exports.bytes = {
|
|
148
63
|
encode(sink, val) {
|
|
149
|
-
sink.
|
|
150
|
-
sink.bytes(
|
|
151
|
-
sink.
|
|
64
|
+
sink.openTail();
|
|
65
|
+
sink.bytes(val);
|
|
66
|
+
sink.closeTail();
|
|
152
67
|
},
|
|
153
68
|
decode(src) {
|
|
154
|
-
return
|
|
69
|
+
return src.bytesHex();
|
|
155
70
|
},
|
|
156
71
|
isDynamic: true,
|
|
72
|
+
baseType: 'bytes',
|
|
157
73
|
};
|
|
158
74
|
const bytesN = (size) => ({
|
|
159
75
|
encode(sink, val) {
|
|
160
|
-
sink.staticBytes(size,
|
|
76
|
+
sink.staticBytes(size, val);
|
|
161
77
|
},
|
|
162
78
|
decode(src) {
|
|
163
|
-
return
|
|
79
|
+
return src.staticBytesHex(size);
|
|
164
80
|
},
|
|
165
81
|
isDynamic: false,
|
|
82
|
+
baseType: 'bytes',
|
|
166
83
|
});
|
|
167
84
|
exports.bytes0 = bytesN(0);
|
|
168
85
|
exports.bytes1 = bytesN(1);
|
|
@@ -205,14 +122,8 @@ exports.address = {
|
|
|
205
122
|
return src.address();
|
|
206
123
|
},
|
|
207
124
|
isDynamic: false,
|
|
125
|
+
baseType: 'address',
|
|
208
126
|
};
|
|
209
|
-
const fixedSizeArray = (item, size) => new array_1.FixedSizeArrayCodec(item, size);
|
|
210
|
-
exports.fixedSizeArray = fixedSizeArray;
|
|
211
|
-
const array = (item) => new array_1.ArrayCodec(item);
|
|
212
|
-
exports.array = array;
|
|
213
|
-
const struct = (components) => new struct_1.StructCodec(components);
|
|
214
|
-
exports.struct = struct;
|
|
215
|
-
exports.tuple = exports.struct;
|
|
216
127
|
exports.uint24 = exports.uint32;
|
|
217
128
|
exports.int24 = exports.int32;
|
|
218
129
|
exports.uint40 = exports.uint64;
|
|
@@ -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":";;;;;AAEA,SAAS,YAAY,CAAC,KAAsB;IACxC,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAMD,SAAS,WAAW,CAAC,MAAkB;IACnC,OAAO;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC9B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAClB,CAAA;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB;IACnC,OAAO;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC9B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;KAClB,CAAA;AACL,CAAC;AAEY,QAAA,IAAI,GAAmB;IAChC,MAAM,CAAC,IAAU,EAAE,GAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,MAAM,CAAC,GAAQ;QACX,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC;IACD,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,MAAM;CACnB,CAAA;AAEY,QAAA,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,QAAA,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;AACxB,QAAA,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC7B,QAAA,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC5B,QAAA,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC7B,QAAA,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAE5B,QAAA,MAAM,GAAkB;IACjC,MAAM,CAAC,IAAU,EAAE,GAAW;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC,SAAS,EAAE,CAAA;IACpB,CAAC;IACD,MAAM,CAAC,GAAQ;QACX,OAAO,GAAG,CAAC,MAAM,EAAE,CAAA;IACvB,CAAC;IACD,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,QAAQ;CACrB,CAAA;AAEY,QAAA,KAAK,GAAuC;IACrD,MAAM,CAAC,IAAU,EAAE,GAAwB;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACf,IAAI,CAAC,SAAS,EAAE,CAAA;IACpB,CAAC;IACD,MAAM,CAAC,GAAQ;QACX,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IACD,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,OAAO;CACpB,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsC,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,IAAU,EAAE,GAAwB;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IACD,MAAM,CAAC,GAAQ;QACX,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IACD,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,OAAO;CACpB,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;IAClC,MAAM,CAAC,IAAU,EAAE,GAAW;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IACD,MAAM,CAAC,GAAQ;QACX,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IACD,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,SAAS;CACtB,CAAA;AAEY,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/codecs/struct.d.ts
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import { Codec,
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import type { Codec, Sink, Src, Struct } from '../codec';
|
|
2
|
+
import { type Pretty } from '../util';
|
|
3
|
+
export type DecodedStruct<T extends Struct> = Pretty<{
|
|
4
|
+
[K in keyof T]: T[K] extends Codec<any, infer U> ? U : never;
|
|
5
|
+
}>;
|
|
6
|
+
export type EncodedStruct<T extends Struct> = Pretty<{
|
|
7
|
+
[K in keyof T]: T[K] extends Codec<infer U, any> ? U : never;
|
|
8
|
+
}>;
|
|
4
9
|
export declare class StructCodec<const T extends Struct> implements Codec<EncodedStruct<T>, DecodedStruct<T>> {
|
|
10
|
+
readonly baseType = "struct";
|
|
5
11
|
readonly isDynamic: boolean;
|
|
6
12
|
readonly slotsCount: number;
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
readonly childrenSlotsCount: number;
|
|
14
|
+
readonly components: T;
|
|
15
|
+
readonly encodeInline: (sink: Sink, val: EncodedStruct<T>) => void;
|
|
16
|
+
readonly decodeInline: (src: Src) => DecodedStruct<T>;
|
|
17
|
+
readonly encode: (sink: Sink, val: EncodedStruct<T>) => void;
|
|
18
|
+
readonly decode: (src: Src) => DecodedStruct<T>;
|
|
9
19
|
constructor(components: T);
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
decode(src: Src): DecodedStruct<T>;
|
|
13
|
-
private decodeDynamic;
|
|
20
|
+
private createEncode;
|
|
21
|
+
private createDecode;
|
|
14
22
|
}
|
|
15
23
|
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/codecs/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,UAAU,CAAA;AACtD,OAAO,EAAC,KAAK,MAAM,EAAuB,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAChD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC/D,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC;KAChD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;CAC/D,CAAC,CAAA;AAUF,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACjG,SAAgB,QAAQ,YAAW;IACnC,SAAgB,SAAS,EAAE,OAAO,CAAA;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,SAAgB,kBAAkB,EAAE,MAAM,CAAA;IAC1C,SAAgB,UAAU,EAAE,CAAC,CAAA;IAE7B,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAClE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;IAErD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAC5D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;gBAEnC,UAAU,EAAE,CAAC;IAkBzB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,YAAY;CAmBvB"}
|