@wormhole-foundation/sdk-base 0.4.2-beta.1 → 0.4.2
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/dist/cjs/constants/chains.d.ts +7 -15
- package/dist/cjs/constants/chains.d.ts.map +1 -1
- package/dist/cjs/constants/chains.js +0 -4
- package/dist/cjs/constants/chains.js.map +1 -1
- package/dist/cjs/constants/circle.d.ts +1 -1
- package/dist/cjs/constants/contracts/core.d.ts +1 -1
- package/dist/cjs/constants/contracts/core.d.ts.map +1 -1
- package/dist/cjs/constants/contracts/core.js +0 -1
- package/dist/cjs/constants/contracts/core.js.map +1 -1
- package/dist/cjs/constants/contracts/index.d.ts +0 -4
- package/dist/cjs/constants/contracts/index.d.ts.map +1 -1
- package/dist/cjs/constants/contracts/tokenBridgeRelayer.js.map +1 -1
- package/dist/cjs/constants/finality.d.ts +5 -9
- package/dist/cjs/constants/finality.d.ts.map +1 -1
- package/dist/cjs/constants/finality.js +4 -11
- package/dist/cjs/constants/finality.js.map +1 -1
- package/dist/cjs/constants/nativeChainIds.d.ts +3 -33
- package/dist/cjs/constants/nativeChainIds.d.ts.map +1 -1
- package/dist/cjs/constants/nativeChainIds.js +0 -18
- package/dist/cjs/constants/nativeChainIds.js.map +1 -1
- package/dist/cjs/constants/platforms.d.ts +3 -7
- package/dist/cjs/constants/platforms.d.ts.map +1 -1
- package/dist/cjs/constants/platforms.js +0 -4
- package/dist/cjs/constants/platforms.js.map +1 -1
- package/dist/cjs/constants/rpc.d.ts.map +1 -1
- package/dist/cjs/constants/rpc.js +0 -4
- package/dist/cjs/constants/rpc.js.map +1 -1
- package/dist/cjs/utils/amount.d.ts +0 -12
- package/dist/cjs/utils/amount.d.ts.map +1 -1
- package/dist/cjs/utils/amount.js +1 -19
- package/dist/cjs/utils/amount.js.map +1 -1
- package/dist/cjs/utils/layout/deserialize.d.ts +2 -6
- package/dist/cjs/utils/layout/deserialize.d.ts.map +1 -1
- package/dist/cjs/utils/layout/deserialize.js +86 -99
- package/dist/cjs/utils/layout/deserialize.js.map +1 -1
- package/dist/cjs/utils/layout/discriminate.d.ts +2 -2
- package/dist/cjs/utils/layout/discriminate.d.ts.map +1 -1
- package/dist/cjs/utils/layout/discriminate.js +29 -63
- package/dist/cjs/utils/layout/discriminate.js.map +1 -1
- package/dist/cjs/utils/layout/fixedDynamic.d.ts +10 -15
- package/dist/cjs/utils/layout/fixedDynamic.d.ts.map +1 -1
- package/dist/cjs/utils/layout/fixedDynamic.js +34 -46
- package/dist/cjs/utils/layout/fixedDynamic.js.map +1 -1
- package/dist/cjs/utils/layout/index.d.ts +2 -3
- package/dist/cjs/utils/layout/index.d.ts.map +1 -1
- package/dist/cjs/utils/layout/index.js +3 -6
- package/dist/cjs/utils/layout/index.js.map +1 -1
- package/dist/cjs/utils/layout/items.js +1 -1
- package/dist/cjs/utils/layout/items.js.map +1 -1
- package/dist/cjs/utils/layout/layout.d.ts +38 -46
- package/dist/cjs/utils/layout/layout.d.ts.map +1 -1
- package/dist/cjs/utils/layout/layout.js +7 -4
- package/dist/cjs/utils/layout/layout.js.map +1 -1
- package/dist/cjs/utils/layout/serialize.d.ts +3 -12
- package/dist/cjs/utils/layout/serialize.d.ts.map +1 -1
- package/dist/cjs/utils/layout/serialize.js +54 -82
- package/dist/cjs/utils/layout/serialize.js.map +1 -1
- package/dist/cjs/utils/layout/size.d.ts +1 -2
- package/dist/cjs/utils/layout/size.d.ts.map +1 -1
- package/dist/cjs/utils/layout/size.js +65 -100
- package/dist/cjs/utils/layout/size.js.map +1 -1
- package/dist/cjs/utils/layout/utils.d.ts +4 -46
- package/dist/cjs/utils/layout/utils.d.ts.map +1 -1
- package/dist/cjs/utils/layout/utils.js +20 -54
- package/dist/cjs/utils/layout/utils.js.map +1 -1
- package/dist/cjs/utils/metaprogramming.d.ts +0 -3
- package/dist/cjs/utils/metaprogramming.d.ts.map +1 -1
- package/dist/cjs/utils/metaprogramming.js.map +1 -1
- package/dist/esm/constants/chains.d.ts +7 -15
- package/dist/esm/constants/chains.d.ts.map +1 -1
- package/dist/esm/constants/chains.js +0 -4
- package/dist/esm/constants/chains.js.map +1 -1
- package/dist/esm/constants/circle.d.ts +1 -1
- package/dist/esm/constants/contracts/core.d.ts +1 -1
- package/dist/esm/constants/contracts/core.d.ts.map +1 -1
- package/dist/esm/constants/contracts/core.js +0 -1
- package/dist/esm/constants/contracts/core.js.map +1 -1
- package/dist/esm/constants/contracts/index.d.ts +0 -4
- package/dist/esm/constants/contracts/index.d.ts.map +1 -1
- package/dist/esm/constants/contracts/tokenBridgeRelayer.js.map +1 -1
- package/dist/esm/constants/finality.d.ts +5 -9
- package/dist/esm/constants/finality.d.ts.map +1 -1
- package/dist/esm/constants/finality.js +4 -11
- package/dist/esm/constants/finality.js.map +1 -1
- package/dist/esm/constants/nativeChainIds.d.ts +3 -33
- package/dist/esm/constants/nativeChainIds.d.ts.map +1 -1
- package/dist/esm/constants/nativeChainIds.js +0 -18
- package/dist/esm/constants/nativeChainIds.js.map +1 -1
- package/dist/esm/constants/platforms.d.ts +3 -7
- package/dist/esm/constants/platforms.d.ts.map +1 -1
- package/dist/esm/constants/platforms.js +0 -4
- package/dist/esm/constants/platforms.js.map +1 -1
- package/dist/esm/constants/rpc.d.ts.map +1 -1
- package/dist/esm/constants/rpc.js +0 -4
- package/dist/esm/constants/rpc.js.map +1 -1
- package/dist/esm/utils/amount.d.ts +0 -12
- package/dist/esm/utils/amount.d.ts.map +1 -1
- package/dist/esm/utils/amount.js +0 -16
- package/dist/esm/utils/amount.js.map +1 -1
- package/dist/esm/utils/layout/deserialize.d.ts +2 -6
- package/dist/esm/utils/layout/deserialize.d.ts.map +1 -1
- package/dist/esm/utils/layout/deserialize.js +88 -101
- package/dist/esm/utils/layout/deserialize.js.map +1 -1
- package/dist/esm/utils/layout/discriminate.d.ts +2 -2
- package/dist/esm/utils/layout/discriminate.d.ts.map +1 -1
- package/dist/esm/utils/layout/discriminate.js +28 -62
- package/dist/esm/utils/layout/discriminate.js.map +1 -1
- package/dist/esm/utils/layout/fixedDynamic.d.ts +10 -15
- package/dist/esm/utils/layout/fixedDynamic.d.ts.map +1 -1
- package/dist/esm/utils/layout/fixedDynamic.js +34 -46
- package/dist/esm/utils/layout/fixedDynamic.js.map +1 -1
- package/dist/esm/utils/layout/index.d.ts +2 -3
- package/dist/esm/utils/layout/index.d.ts.map +1 -1
- package/dist/esm/utils/layout/index.js +1 -2
- package/dist/esm/utils/layout/index.js.map +1 -1
- package/dist/esm/utils/layout/items.js +1 -1
- package/dist/esm/utils/layout/items.js.map +1 -1
- package/dist/esm/utils/layout/layout.d.ts +38 -46
- package/dist/esm/utils/layout/layout.d.ts.map +1 -1
- package/dist/esm/utils/layout/layout.js +3 -3
- package/dist/esm/utils/layout/layout.js.map +1 -1
- package/dist/esm/utils/layout/serialize.d.ts +3 -12
- package/dist/esm/utils/layout/serialize.d.ts.map +1 -1
- package/dist/esm/utils/layout/serialize.js +53 -80
- package/dist/esm/utils/layout/serialize.js.map +1 -1
- package/dist/esm/utils/layout/size.d.ts +1 -2
- package/dist/esm/utils/layout/size.d.ts.map +1 -1
- package/dist/esm/utils/layout/size.js +65 -99
- package/dist/esm/utils/layout/size.js.map +1 -1
- package/dist/esm/utils/layout/utils.d.ts +4 -46
- package/dist/esm/utils/layout/utils.d.ts.map +1 -1
- package/dist/esm/utils/layout/utils.js +17 -42
- package/dist/esm/utils/layout/utils.js.map +1 -1
- package/dist/esm/utils/metaprogramming.d.ts +0 -3
- package/dist/esm/utils/metaprogramming.d.ts.map +1 -1
- package/dist/esm/utils/metaprogramming.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,90 +1,84 @@
|
|
|
1
1
|
export type NumType = number | bigint;
|
|
2
|
+
export declare const isNumType: (x: any) => x is NumType;
|
|
2
3
|
export type BytesType = Uint8Array;
|
|
4
|
+
export declare const isBytesType: (x: any) => x is Uint8Array;
|
|
3
5
|
export type PrimitiveType = NumType | BytesType;
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export declare const binaryLiterals: readonly ["int", "uint", "bytes", "array", "switch"];
|
|
8
|
-
export type BinaryLiterals = typeof binaryLiterals[number];
|
|
6
|
+
export declare const isPrimitiveType: (x: any) => x is PrimitiveType;
|
|
7
|
+
export type BinaryLiterals = "int" | "uint" | "bytes" | "array" | "object" | "switch";
|
|
9
8
|
export type Endianness = "little" | "big";
|
|
10
9
|
export type NumberSize = 1 | 2 | 3 | 4 | 5 | 6;
|
|
11
10
|
export declare const numberMaxSize = 6;
|
|
12
|
-
export type NumSizeToPrimitive<Size extends number> = Size extends NumberSize ? number :
|
|
13
|
-
export type FixedConversion<FromType extends PrimitiveType
|
|
11
|
+
export type NumSizeToPrimitive<Size extends number> = Size extends NumberSize ? number : bigint;
|
|
12
|
+
export type FixedConversion<FromType extends PrimitiveType, ToType> = {
|
|
14
13
|
readonly to: ToType;
|
|
15
14
|
readonly from: FromType;
|
|
16
15
|
};
|
|
17
|
-
export type CustomConversion<FromType extends PrimitiveType
|
|
16
|
+
export type CustomConversion<FromType extends PrimitiveType, ToType> = {
|
|
18
17
|
readonly to: (val: FromType) => ToType;
|
|
19
18
|
readonly from: (val: ToType) => FromType;
|
|
20
19
|
};
|
|
21
|
-
|
|
20
|
+
interface LayoutItemBase<BL extends BinaryLiterals> {
|
|
22
21
|
readonly binary: BL;
|
|
23
22
|
}
|
|
24
|
-
interface
|
|
23
|
+
interface FixedPrimitiveCustom<T extends PrimitiveType> {
|
|
25
24
|
custom: T;
|
|
26
25
|
omit?: boolean;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
readonly lengthEndianness?: Endianness;
|
|
27
|
+
interface OptionalToFromCustom<T extends PrimitiveType> {
|
|
28
|
+
custom?: FixedConversion<T, any> | CustomConversion<T, any>;
|
|
31
29
|
}
|
|
32
30
|
interface NumLayoutItemBase<T extends NumType, Signed extends Boolean> extends LayoutItemBase<Signed extends true ? "int" : "uint"> {
|
|
33
31
|
size: T extends bigint ? number : NumberSize;
|
|
34
32
|
endianness?: Endianness;
|
|
35
33
|
}
|
|
36
|
-
export interface
|
|
34
|
+
export interface FixedPrimitiveNumLayoutItem<T extends NumType, Signed extends Boolean> extends NumLayoutItemBase<T, Signed>, FixedPrimitiveCustom<T> {
|
|
37
35
|
}
|
|
38
|
-
export interface
|
|
39
|
-
custom?: FixedConversion<T, any> | CustomConversion<T, any>;
|
|
36
|
+
export interface OptionalToFromNumLayoutItem<T extends NumType, Signed extends Boolean> extends NumLayoutItemBase<T, Signed>, OptionalToFromCustom<T> {
|
|
40
37
|
}
|
|
41
|
-
export interface
|
|
38
|
+
export interface FixedPrimitiveBytesLayoutItem extends LayoutItemBase<"bytes">, FixedPrimitiveCustom<BytesType> {
|
|
42
39
|
}
|
|
43
|
-
export interface
|
|
44
|
-
readonly custom
|
|
40
|
+
export interface FixedValueBytesLayoutItem extends LayoutItemBase<"bytes"> {
|
|
41
|
+
readonly custom: FixedConversion<BytesType, any>;
|
|
45
42
|
}
|
|
46
|
-
export interface
|
|
47
|
-
readonly custom?: FixedConversion<LayoutObject, any> | CustomConversion<LayoutObject, any>;
|
|
48
|
-
readonly layout: Layout;
|
|
49
|
-
}
|
|
50
|
-
export interface ManualSizePureBytes extends FlexPureBytes {
|
|
43
|
+
export interface FixedSizeBytesLayoutItem extends LayoutItemBase<"bytes"> {
|
|
51
44
|
readonly size: number;
|
|
45
|
+
readonly custom?: CustomConversion<BytesType, any>;
|
|
52
46
|
}
|
|
53
|
-
export interface
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
readonly
|
|
57
|
-
}
|
|
58
|
-
export interface LengthPrefixedLayoutBytes extends FlexLayoutBytes, LengthPrefixed {
|
|
47
|
+
export interface LengthPrefixedBytesLayoutItem extends LayoutItemBase<"bytes"> {
|
|
48
|
+
readonly lengthSize?: NumberSize;
|
|
49
|
+
readonly lengthEndianness?: Endianness;
|
|
50
|
+
readonly custom?: CustomConversion<BytesType, any>;
|
|
59
51
|
}
|
|
60
52
|
interface ArrayLayoutItemBase extends LayoutItemBase<"array"> {
|
|
61
53
|
readonly layout: Layout;
|
|
62
54
|
}
|
|
63
|
-
export interface
|
|
55
|
+
export interface FixedSizeArrayLayoutItem extends ArrayLayoutItemBase {
|
|
64
56
|
readonly length: number;
|
|
65
57
|
}
|
|
66
|
-
export interface
|
|
58
|
+
export interface LengthPrefixedArrayLayoutItem extends ArrayLayoutItemBase {
|
|
59
|
+
readonly lengthSize?: NumberSize;
|
|
60
|
+
readonly lengthEndianness?: Endianness;
|
|
67
61
|
}
|
|
68
|
-
export interface
|
|
62
|
+
export interface ObjectLayoutItem extends LayoutItemBase<"object"> {
|
|
63
|
+
readonly layout: ProperLayout;
|
|
69
64
|
}
|
|
70
65
|
type PlainId = number;
|
|
71
66
|
type ConversionId = readonly [number, unknown];
|
|
72
67
|
type IdProperLayoutPair<Id extends PlainId | ConversionId, P extends ProperLayout = ProperLayout> = readonly [Id, P];
|
|
73
68
|
type IdProperLayoutPairs = readonly IdProperLayoutPair<PlainId>[] | readonly IdProperLayoutPair<ConversionId>[];
|
|
74
|
-
type DistributiveAtLeast1<T> = T extends any ? readonly [T, ...T[]] : never;
|
|
75
69
|
export interface SwitchLayoutItem extends LayoutItemBase<"switch"> {
|
|
76
70
|
readonly idSize: NumberSize;
|
|
77
|
-
readonly idEndianness?: Endianness;
|
|
78
71
|
readonly idTag?: string;
|
|
79
|
-
readonly
|
|
72
|
+
readonly idEndianness?: Endianness;
|
|
73
|
+
readonly layouts: IdProperLayoutPairs;
|
|
80
74
|
}
|
|
81
|
-
export type NumLayoutItem<Signed extends boolean = boolean> = Signed extends infer S extends boolean ?
|
|
75
|
+
export type NumLayoutItem<Signed extends boolean = boolean> = Signed extends infer S extends boolean ? FixedPrimitiveNumLayoutItem<number, S> | OptionalToFromNumLayoutItem<number, S> | FixedPrimitiveNumLayoutItem<bigint, S> | OptionalToFromNumLayoutItem<bigint, S> : never;
|
|
82
76
|
export type UintLayoutItem = NumLayoutItem<false>;
|
|
83
77
|
export type IntLayoutItem = NumLayoutItem<true>;
|
|
84
|
-
export type BytesLayoutItem =
|
|
85
|
-
export type ArrayLayoutItem =
|
|
86
|
-
export type LayoutItem = NumLayoutItem | BytesLayoutItem | ArrayLayoutItem | SwitchLayoutItem;
|
|
87
|
-
type NamedLayoutItem = LayoutItem & {
|
|
78
|
+
export type BytesLayoutItem = FixedPrimitiveBytesLayoutItem | FixedValueBytesLayoutItem | FixedSizeBytesLayoutItem | LengthPrefixedBytesLayoutItem;
|
|
79
|
+
export type ArrayLayoutItem = FixedSizeArrayLayoutItem | LengthPrefixedArrayLayoutItem;
|
|
80
|
+
export type LayoutItem = NumLayoutItem | BytesLayoutItem | ArrayLayoutItem | ObjectLayoutItem | SwitchLayoutItem;
|
|
81
|
+
export type NamedLayoutItem = LayoutItem & {
|
|
88
82
|
readonly name: string;
|
|
89
83
|
};
|
|
90
84
|
export type ProperLayout = readonly NamedLayoutItem[];
|
|
@@ -94,15 +88,13 @@ type NameOrOmitted<T extends {
|
|
|
94
88
|
}> = T extends {
|
|
95
89
|
omit: true;
|
|
96
90
|
} ? never : T["name"];
|
|
97
|
-
export type LayoutToType<L extends Layout> =
|
|
91
|
+
export type LayoutToType<L extends Layout> = L extends infer LI extends LayoutItem ? LayoutItemToType<LI> : L extends infer P extends ProperLayout ? {
|
|
98
92
|
readonly [I in P[number] as NameOrOmitted<I>]: LayoutItemToType<I>;
|
|
99
93
|
} : never;
|
|
100
94
|
type MaybeConvert<Id extends PlainId | ConversionId> = Id extends readonly [number, infer Converted] ? Converted : Id;
|
|
101
|
-
type IdLayoutPairsToTypeUnion<A extends IdProperLayoutPairs, IdTag extends string> = A extends infer V extends IdProperLayoutPairs ? V extends readonly [infer Head, ...infer Tail extends IdProperLayoutPairs] ? Head extends IdProperLayoutPair<infer MaybeConversionId, infer P extends ProperLayout> ? MaybeConvert<MaybeConversionId> extends infer Id ? LayoutToType<P> extends infer LT extends
|
|
95
|
+
type IdLayoutPairsToTypeUnion<A extends IdProperLayoutPairs, IdTag extends string> = A extends infer V extends IdProperLayoutPairs ? V extends readonly [infer Head, ...infer Tail extends IdProperLayoutPairs] ? Head extends IdProperLayoutPair<infer MaybeConversionId, infer P extends ProperLayout> ? MaybeConvert<MaybeConversionId> extends infer Id ? LayoutToType<P> extends infer LT extends object ? {
|
|
102
96
|
readonly [K in IdTag | keyof LT]: K extends keyof LT ? LT[K] : Id;
|
|
103
97
|
} | IdLayoutPairsToTypeUnion<Tail, IdTag> : never : never : never : never : never;
|
|
104
|
-
type LayoutItemToType<Item extends LayoutItem> = Item extends infer I extends LayoutItem ? I extends NumLayoutItem ? I["custom"] extends CustomConversion<infer
|
|
105
|
-
layout: Layout;
|
|
106
|
-
} ? I["custom"] extends CustomConversion<infer From extends LayoutObject, infer To> ? To : I["custom"] extends FixedConversion<infer From extends LayoutObject, infer To> ? To : LayoutToType<I["layout"]> : I["custom"] extends CustomConversion<BytesType, infer To> ? To : I["custom"] extends FixedConversion<BytesType, infer To> ? To : BytesType : I extends ArrayLayoutItem ? readonly LayoutToType<I["layout"]>[] : I extends SwitchLayoutItem ? IdLayoutPairsToTypeUnion<I["layouts"], I["idTag"] extends undefined ? "id" : I["idTag"] extends string ? I["idTag"] : "id"> : never : never;
|
|
98
|
+
export type LayoutItemToType<Item extends LayoutItem> = Item extends infer I extends LayoutItem ? I extends NumLayoutItem ? I["custom"] extends NumType ? I["custom"] : I["custom"] extends CustomConversion<infer FromType extends NumType, infer ToType> ? ToType : I["custom"] extends FixedConversion<infer FromType extends NumType, infer ToType> ? ToType : NumSizeToPrimitive<I["size"]> : I extends BytesLayoutItem ? I["custom"] extends CustomConversion<BytesType, infer ToType> ? ToType : I["custom"] extends FixedConversion<BytesType, infer ToType> ? ToType : BytesType : I extends ArrayLayoutItem ? readonly LayoutToType<I["layout"]>[] : I extends ObjectLayoutItem ? LayoutToType<I["layout"]> : I extends SwitchLayoutItem ? IdLayoutPairsToTypeUnion<I["layouts"], I["idTag"] extends string ? I["idTag"] : "id"> : never : never;
|
|
107
99
|
export {};
|
|
108
100
|
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/layout.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AACtC,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.numberMaxSize = exports.
|
|
4
|
-
|
|
3
|
+
exports.numberMaxSize = exports.isPrimitiveType = exports.isBytesType = exports.isNumType = void 0;
|
|
4
|
+
const isNumType = (x) => typeof x === "number" || typeof x === "bigint";
|
|
5
|
+
exports.isNumType = isNumType;
|
|
6
|
+
const isBytesType = (x) => x instanceof Uint8Array;
|
|
7
|
+
exports.isBytesType = isBytesType;
|
|
8
|
+
const isPrimitiveType = (x) => (0, exports.isNumType)(x) || (0, exports.isBytesType)(x);
|
|
9
|
+
exports.isPrimitiveType = isPrimitiveType;
|
|
5
10
|
exports.numberMaxSize = 6;
|
|
6
11
|
;
|
|
7
12
|
;
|
|
@@ -16,6 +21,4 @@ exports.numberMaxSize = 6;
|
|
|
16
21
|
;
|
|
17
22
|
;
|
|
18
23
|
;
|
|
19
|
-
;
|
|
20
|
-
;
|
|
21
24
|
//# sourceMappingURL=layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/utils/layout/layout.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/utils/layout/layout.ts"],"names":[],"mappings":";;;AACO,MAAM,SAAS,GAAG,CAAC,CAAM,EAAgB,EAAE,CAChD,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AADpC,QAAA,SAAS,aAC2B;AAG1C,MAAM,WAAW,GAAG,CAAC,CAAM,EAAkB,EAAE,CAAC,CAAC,YAAY,UAAU,CAAC;AAAlE,QAAA,WAAW,eAAuD;AAGxE,MAAM,eAAe,GAAG,CAAC,CAAM,EAAsB,EAAE,CAC5D,IAAA,iBAAS,EAAC,CAAC,CAAC,IAAI,IAAA,mBAAW,EAAC,CAAC,CAAC,CAAC;AADpB,QAAA,eAAe,mBACK;AAcpB,QAAA,aAAa,GAAG,CAAC,CAAC;AAiB9B,CAAC;AAKD,CAAC;AAID,CAAC;AAOD,CAAC;AAGgE,CAAC;AAGD,CAAC;AAGE,CAAC;AAIrE,CAAC;AAKD,CAAC;AASD,CAAC;AAID,CAAC;AAID,CAAC;AAKD,CAAC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import { Endianness, Layout, LayoutToType, NumType
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
offset: number;
|
|
5
|
-
};
|
|
6
|
-
export declare function serializeLayout<const L extends Layout, E extends BytesType | undefined = undefined>(layout: L, data: LayoutToType<L>, encoded?: E, offset?: number): E extends undefined ? Uint8Array : number;
|
|
7
|
-
export declare function serializeNum(val: NumType, size: number, cursor: Cursor, endianness?: Endianness, signed?: boolean): void;
|
|
8
|
-
export declare function getCachedSerializedFrom(item: LayoutItemBase<"bytes"> & {
|
|
9
|
-
layout: Layout;
|
|
10
|
-
custom: FixedConversion<LayoutObject, any>;
|
|
11
|
-
}): Uint8Array;
|
|
12
|
-
export {};
|
|
1
|
+
import { Endianness, Layout, LayoutToType, NumType } from "./layout";
|
|
2
|
+
export declare function serializeLayout<L extends Layout, E extends Uint8Array | undefined = undefined>(layout: L, data: LayoutToType<L>, encoded?: E, offset?: number): E extends undefined ? Uint8Array : number;
|
|
3
|
+
export declare function serializeNum(encoded: Uint8Array, offset: number, val: NumType, bytes: number, endianness?: Endianness, signed?: boolean): number;
|
|
13
4
|
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EAEN,YAAY,
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EAEN,YAAY,EAIZ,OAAO,EAIR,MAAM,UAAU,CAAC;AASlB,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,UAAU,GAAG,SAAS,GAAG,SAAS,EAC5F,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE,CAAC,EACX,MAAM,SAAI,6CAKX;AAKD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,UAAkB,EAC9B,MAAM,GAAE,OAAe,GACtB,MAAM,CA8BR"}
|
|
@@ -1,149 +1,121 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.serializeNum = exports.serializeLayout = void 0;
|
|
4
4
|
const layout_1 = require("./layout");
|
|
5
5
|
const size_1 = require("./size");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
|
-
const cursorWrite = (cursor, bytes) => {
|
|
8
|
-
cursor.bytes.set(bytes, cursor.offset);
|
|
9
|
-
cursor.offset += bytes.length;
|
|
10
|
-
};
|
|
11
7
|
function serializeLayout(layout, data, encoded, offset = 0) {
|
|
12
|
-
|
|
13
|
-
internalSerializeLayout(layout, data, cursor);
|
|
14
|
-
if (!encoded && cursor.offset !== cursor.bytes.length)
|
|
15
|
-
throw new Error(`encoded data is shorter than expected: ${cursor.bytes.length} > ${cursor.offset}`);
|
|
16
|
-
return (encoded ? cursor.offset : cursor.bytes);
|
|
8
|
+
return (internalSerializeLayout(layout, data, encoded, offset));
|
|
17
9
|
}
|
|
18
10
|
exports.serializeLayout = serializeLayout;
|
|
19
11
|
//see numberMaxSize comment in layout.ts
|
|
20
12
|
const maxAllowedNumberVal = 2 ** (layout_1.numberMaxSize * 8);
|
|
21
|
-
function serializeNum(
|
|
13
|
+
function serializeNum(encoded, offset, val, bytes, endianness = "big", signed = false) {
|
|
22
14
|
if (!signed && val < 0)
|
|
23
15
|
throw new Error(`Value ${val} is negative but unsigned`);
|
|
24
16
|
if (typeof val === "number") {
|
|
25
17
|
if (!Number.isInteger(val))
|
|
26
18
|
throw new Error(`Value ${val} is not an integer`);
|
|
27
|
-
if (
|
|
19
|
+
if (bytes > layout_1.numberMaxSize) {
|
|
28
20
|
if (val >= maxAllowedNumberVal)
|
|
29
21
|
throw new Error(`Value ${val} is too large to be safely converted into an integer`);
|
|
30
22
|
if (signed && val <= -maxAllowedNumberVal)
|
|
31
23
|
throw new Error(`Value ${val} is too small to be safely converted into an integer`);
|
|
32
24
|
}
|
|
33
25
|
}
|
|
34
|
-
const bound = 2n ** BigInt(
|
|
26
|
+
const bound = 2n ** BigInt(bytes * 8);
|
|
35
27
|
if (val >= bound)
|
|
36
|
-
throw new Error(`Value ${val} is too large for ${
|
|
28
|
+
throw new Error(`Value ${val} is too large for ${bytes} bytes`);
|
|
37
29
|
if (signed && val < -bound)
|
|
38
|
-
throw new Error(`Value ${val} is too small for ${
|
|
30
|
+
throw new Error(`Value ${val} is too small for ${bytes} bytes`);
|
|
39
31
|
//correctly handles both signed and unsigned values
|
|
40
|
-
for (let i = 0; i <
|
|
41
|
-
|
|
42
|
-
Number((BigInt(val) >> BigInt(8 * (endianness === "big" ?
|
|
43
|
-
|
|
32
|
+
for (let i = 0; i < bytes; ++i)
|
|
33
|
+
encoded[offset + i] =
|
|
34
|
+
Number((BigInt(val) >> BigInt(8 * (endianness === "big" ? bytes - i - 1 : i)) & 0xffn));
|
|
35
|
+
return offset + bytes;
|
|
44
36
|
}
|
|
45
37
|
exports.serializeNum = serializeNum;
|
|
46
|
-
function internalSerializeLayout(layout, data,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
for (const item of layout)
|
|
38
|
+
function internalSerializeLayout(layout, data, encoded, offset = 0) {
|
|
39
|
+
let ret = encoded ?? new Uint8Array((0, size_1.calcLayoutSize)(layout, data));
|
|
40
|
+
if (Array.isArray(layout))
|
|
41
|
+
for (let i = 0; i < layout.length; ++i)
|
|
51
42
|
try {
|
|
52
|
-
|
|
43
|
+
offset =
|
|
44
|
+
serializeLayoutItem(layout[i], data[layout[i].name], ret, offset);
|
|
53
45
|
}
|
|
54
46
|
catch (e) {
|
|
55
|
-
e.message = `when serializing item '${
|
|
47
|
+
e.message = `when serializing item '${layout[i].name}': ${e.message}`;
|
|
56
48
|
throw e;
|
|
57
49
|
}
|
|
50
|
+
else
|
|
51
|
+
offset = serializeLayoutItem(layout, data, ret, offset);
|
|
52
|
+
return encoded === undefined ? ret : offset;
|
|
58
53
|
}
|
|
59
|
-
function serializeLayoutItem(item, data,
|
|
54
|
+
function serializeLayoutItem(item, data, encoded, offset) {
|
|
60
55
|
switch (item.binary) {
|
|
61
56
|
case "int":
|
|
62
57
|
case "uint": {
|
|
63
58
|
const value = (() => {
|
|
64
|
-
if ((0,
|
|
59
|
+
if ((0, layout_1.isNumType)(item.custom)) {
|
|
65
60
|
if (!("omit" in item && item.omit))
|
|
66
61
|
(0, utils_1.checkNumEquals)(item.custom, data);
|
|
67
62
|
return item.custom;
|
|
68
63
|
}
|
|
69
|
-
if ((0,
|
|
64
|
+
if ((0, layout_1.isNumType)(item?.custom?.from))
|
|
70
65
|
//no proper way to deeply check equality of item.custom.to and data in JS
|
|
71
66
|
return item.custom.from;
|
|
72
67
|
return item.custom !== undefined ? item.custom.from(data) : data;
|
|
73
68
|
})();
|
|
74
|
-
|
|
69
|
+
offset =
|
|
70
|
+
serializeNum(encoded, offset, value, item.size, item.endianness, item.binary === "int");
|
|
75
71
|
break;
|
|
76
72
|
}
|
|
77
73
|
case "bytes": {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
cursor.offset += item.lengthSize;
|
|
81
|
-
if ("layout" in item) {
|
|
82
|
-
const { custom } = item;
|
|
83
|
-
let layoutData;
|
|
84
|
-
if (custom === undefined)
|
|
85
|
-
layoutData = data;
|
|
86
|
-
else if (typeof custom.from !== "function")
|
|
87
|
-
layoutData = custom.from;
|
|
88
|
-
else
|
|
89
|
-
layoutData = custom.from(data);
|
|
90
|
-
internalSerializeLayout(item.layout, layoutData, cursor);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
const { custom } = item;
|
|
94
|
-
if ((0, utils_1.isBytesType)(custom)) {
|
|
74
|
+
const value = (() => {
|
|
75
|
+
if ((0, layout_1.isBytesType)(item.custom)) {
|
|
95
76
|
if (!("omit" in item && item.omit))
|
|
96
|
-
(0, utils_1.
|
|
97
|
-
|
|
77
|
+
(0, utils_1.checkUint8ArrayDeeplyEqual)(item.custom, data);
|
|
78
|
+
return item.custom;
|
|
98
79
|
}
|
|
99
|
-
|
|
100
|
-
//no proper way to deeply check equality of custom.to and data
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
(0, utils_1.checkItemSize)(item, cursor.offset - offset);
|
|
80
|
+
if ((0, layout_1.isBytesType)(item?.custom?.from))
|
|
81
|
+
//no proper way to deeply check equality of item.custom.to and data in JS
|
|
82
|
+
return item.custom.from;
|
|
83
|
+
item = item;
|
|
84
|
+
const ret = item.custom !== undefined ? item.custom.from(data) : data;
|
|
85
|
+
if ("size" in item && item.size !== undefined)
|
|
86
|
+
(0, utils_1.checkUint8ArraySize)(ret, item.size);
|
|
87
|
+
else if ("lengthSize" in item && item.lengthSize !== undefined)
|
|
88
|
+
offset =
|
|
89
|
+
serializeNum(encoded, offset, ret.length, item.lengthSize, item.lengthEndianness);
|
|
90
|
+
return ret;
|
|
91
|
+
})();
|
|
92
|
+
encoded.set(value, offset);
|
|
93
|
+
offset += value.length;
|
|
114
94
|
break;
|
|
115
95
|
}
|
|
116
96
|
case "array": {
|
|
117
97
|
if ("length" in item && item.length !== data.length)
|
|
118
98
|
throw new Error(`array length mismatch: layout length: ${item.length}, data length: ${data.length}`);
|
|
119
99
|
if ("lengthSize" in item && item.lengthSize !== undefined)
|
|
120
|
-
|
|
100
|
+
offset =
|
|
101
|
+
serializeNum(encoded, offset, data.length, item.lengthSize, item.lengthEndianness);
|
|
121
102
|
for (let i = 0; i < data.length; ++i)
|
|
122
|
-
internalSerializeLayout(item.layout, data[i],
|
|
103
|
+
offset = internalSerializeLayout(item.layout, data[i], encoded, offset);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case "object": {
|
|
107
|
+
offset = internalSerializeLayout(item.layout, data, encoded, offset);
|
|
123
108
|
break;
|
|
124
109
|
}
|
|
125
110
|
case "switch": {
|
|
126
111
|
const [idOrConversionId, layout] = (0, utils_1.findIdLayoutPair)(item, data);
|
|
127
112
|
const idNum = (Array.isArray(idOrConversionId) ? idOrConversionId[0] : idOrConversionId);
|
|
128
|
-
serializeNum(idNum, item.idSize,
|
|
129
|
-
internalSerializeLayout(layout, data,
|
|
113
|
+
offset = serializeNum(encoded, offset, idNum, item.idSize, item.idEndianness);
|
|
114
|
+
offset = internalSerializeLayout(layout, data, encoded, offset);
|
|
130
115
|
break;
|
|
131
116
|
}
|
|
132
117
|
}
|
|
118
|
+
return offset;
|
|
133
119
|
}
|
|
134
120
|
;
|
|
135
|
-
//slightly hacky, but the only way to ensure that we are actually deserializing the
|
|
136
|
-
// right data without having to re-serialize the layout every time
|
|
137
|
-
function getCachedSerializedFrom(item) {
|
|
138
|
-
const custom = item.custom;
|
|
139
|
-
if (!("cachedSerializedFrom" in custom)) {
|
|
140
|
-
custom.cachedSerializedFrom = serializeLayout(item.layout, custom.from);
|
|
141
|
-
if ("size" in item &&
|
|
142
|
-
item.size !== undefined &&
|
|
143
|
-
item.size !== custom.cachedSerializedFrom.length)
|
|
144
|
-
throw new Error(`Layout specification error: custom.from does not serialize to specified size`);
|
|
145
|
-
}
|
|
146
|
-
return custom.cachedSerializedFrom;
|
|
147
|
-
}
|
|
148
|
-
exports.getCachedSerializedFrom = getCachedSerializedFrom;
|
|
149
121
|
//# sourceMappingURL=serialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../../src/utils/layout/serialize.ts"],"names":[],"mappings":";;;AAAA,qCAYkB;AAClB,iCAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../../src/utils/layout/serialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Layout, LayoutToType } from "./layout";
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function calcLayoutSize<const L extends Layout>(layout: L, data: LayoutToType<L>): number;
|
|
2
|
+
export declare function calcLayoutSize(layout: Layout, data?: LayoutToType<typeof layout>): number;
|
|
4
3
|
//# sourceMappingURL=size.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/size.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,YAAY,
|
|
1
|
+
{"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../../../src/utils/layout/size.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,YAAY,EAGb,MAAM,UAAU,CAAC;AAiGlB,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,MAAM,CAAC,GACjC,MAAM,CAYR"}
|