@polkadot/types-codec 9.14.2 → 10.0.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/abstract/Array.js +140 -155
- package/abstract/Base.js +95 -112
- package/abstract/Int.js +212 -220
- package/abstract/Object.js +34 -45
- package/abstract/index.js +3 -6
- package/base/Compact.js +149 -165
- package/base/DoNotConstruct.js +61 -64
- package/base/Enum.js +345 -382
- package/base/Int.js +14 -18
- package/base/Null.js +71 -82
- package/base/Option.js +217 -226
- package/base/Result.js +54 -67
- package/base/Tuple.js +96 -101
- package/base/UInt.js +11 -15
- package/base/Vec.js +84 -89
- package/base/VecAny.js +8 -12
- package/base/VecFixed.js +59 -70
- package/base/index.js +12 -15
- package/bundle.js +7 -10
- package/cjs/abstract/Array.js +138 -159
- package/cjs/abstract/Base.js +96 -117
- package/cjs/abstract/Int.js +215 -238
- package/cjs/abstract/Object.js +30 -49
- package/cjs/abstract/index.js +8 -25
- package/cjs/base/Compact.js +151 -173
- package/cjs/base/DoNotConstruct.js +63 -70
- package/cjs/base/Enum.js +350 -396
- package/cjs/base/Int.js +16 -24
- package/cjs/base/Null.js +70 -86
- package/cjs/base/Option.js +220 -234
- package/cjs/base/Result.js +56 -71
- package/cjs/base/Tuple.js +103 -109
- package/cjs/base/UInt.js +13 -19
- package/cjs/base/Vec.js +94 -101
- package/cjs/base/VecAny.js +10 -16
- package/cjs/base/VecFixed.js +66 -79
- package/cjs/base/index.js +26 -88
- package/cjs/bundle.js +11 -86
- package/cjs/detectOther.js +2 -10
- package/cjs/detectPackage.js +6 -11
- package/cjs/extended/BTreeMap.js +10 -16
- package/cjs/extended/BTreeSet.js +162 -178
- package/cjs/extended/BitVec.js +70 -77
- package/cjs/extended/Bytes.js +59 -62
- package/cjs/extended/HashMap.js +10 -16
- package/cjs/extended/Linkage.js +50 -60
- package/cjs/extended/Map.js +176 -181
- package/cjs/extended/OptionBool.js +65 -68
- package/cjs/extended/Range.js +37 -46
- package/cjs/extended/RangeInclusive.js +13 -21
- package/cjs/extended/Type.js +14 -22
- package/cjs/extended/U8aFixed.js +33 -43
- package/cjs/extended/WrapperKeepOpaque.js +99 -99
- package/cjs/extended/WrapperOpaque.js +19 -28
- package/cjs/extended/index.js +31 -108
- package/cjs/index.js +3 -15
- package/cjs/native/Bool.js +101 -116
- package/cjs/native/Date.js +125 -151
- package/cjs/native/Float.js +95 -114
- package/cjs/native/Json.js +102 -124
- package/cjs/native/Raw.js +128 -150
- package/cjs/native/Set.js +200 -220
- package/cjs/native/Struct.data.js +2 -9
- package/cjs/native/Struct.js +238 -251
- package/cjs/native/Text.js +137 -149
- package/cjs/native/index.js +21 -78
- package/cjs/packageInfo.js +2 -16
- package/cjs/primitive/F32.js +8 -11
- package/cjs/primitive/F64.js +8 -11
- package/cjs/primitive/I128.js +8 -11
- package/cjs/primitive/I16.js +8 -11
- package/cjs/primitive/I256.js +8 -11
- package/cjs/primitive/I32.js +8 -11
- package/cjs/primitive/I64.js +8 -11
- package/cjs/primitive/I8.js +8 -11
- package/cjs/primitive/U128.js +8 -11
- package/cjs/primitive/U16.js +8 -11
- package/cjs/primitive/U256.js +8 -11
- package/cjs/primitive/U32.js +8 -11
- package/cjs/primitive/U64.js +8 -11
- package/cjs/primitive/U8.js +8 -11
- package/cjs/primitive/USize.js +7 -13
- package/cjs/primitive/index.js +47 -199
- package/cjs/types/codec.js +2 -1
- package/cjs/types/helpers.js +2 -1
- package/cjs/types/index.js +6 -48
- package/cjs/types/interfaces.js +2 -1
- package/cjs/types/registry.js +2 -1
- package/cjs/utils/compareArray.js +12 -17
- package/cjs/utils/compareMap.js +23 -26
- package/cjs/utils/compareSet.js +17 -23
- package/cjs/utils/decodeU8a.js +63 -74
- package/cjs/utils/index.js +24 -91
- package/cjs/utils/mapToTypeMap.js +13 -18
- package/cjs/utils/sanitize.js +198 -204
- package/cjs/utils/sortValues.js +39 -49
- package/cjs/utils/typeToConstructor.js +8 -11
- package/cjs/utils/typesToMap.js +10 -16
- package/cjs/utils/util.js +6 -11
- package/detectOther.js +0 -5
- package/detectPackage.js +2 -7
- package/extended/BTreeMap.js +8 -11
- package/extended/BTreeSet.js +159 -171
- package/extended/BitVec.js +63 -70
- package/extended/Bytes.js +56 -57
- package/extended/HashMap.js +8 -11
- package/extended/Linkage.js +46 -51
- package/extended/Map.js +173 -173
- package/extended/OptionBool.js +62 -62
- package/extended/Range.js +31 -39
- package/extended/RangeInclusive.js +11 -16
- package/extended/Type.js +12 -17
- package/extended/U8aFixed.js +30 -36
- package/extended/WrapperKeepOpaque.js +92 -91
- package/extended/WrapperOpaque.js +17 -23
- package/extended/index.js +14 -17
- package/index.js +2 -5
- package/native/Bool.js +102 -111
- package/native/Date.js +126 -144
- package/native/Float.js +94 -107
- package/native/Json.js +104 -114
- package/native/Raw.js +130 -146
- package/native/Set.js +194 -209
- package/native/Struct.data.js +0 -3
- package/native/Struct.js +233 -241
- package/native/Text.js +135 -143
- package/native/index.js +8 -11
- package/package.json +8 -5
- package/packageInfo.js +1 -11
- package/primitive/F32.js +3 -7
- package/primitive/F64.js +3 -7
- package/primitive/I128.js +3 -7
- package/primitive/I16.js +3 -7
- package/primitive/I256.js +3 -7
- package/primitive/I32.js +3 -7
- package/primitive/I64.js +3 -7
- package/primitive/I8.js +3 -7
- package/primitive/U128.js +3 -7
- package/primitive/U16.js +3 -7
- package/primitive/U256.js +3 -7
- package/primitive/U32.js +3 -7
- package/primitive/U64.js +3 -7
- package/primitive/U8.js +3 -7
- package/primitive/USize.js +5 -9
- package/primitive/index.js +15 -18
- package/types/index.js +4 -7
- package/utils/compareArray.js +7 -11
- package/utils/compareMap.js +18 -19
- package/utils/compareSet.js +12 -16
- package/utils/decodeU8a.js +54 -61
- package/utils/index.js +9 -12
- package/utils/mapToTypeMap.js +9 -13
- package/utils/sanitize.js +182 -185
- package/utils/sortValues.js +32 -36
- package/utils/typeToConstructor.js +3 -4
- package/utils/typesToMap.js +5 -8
- package/utils/util.js +1 -4
package/primitive/index.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export { u128, u128 as U128 } from "./U128.js";
|
|
17
|
-
export { u256, u256 as U256 } from "./U256.js";
|
|
18
|
-
export { usize, usize as USize } from "./USize.js";
|
|
1
|
+
export { f32, f32 as F32 } from './F32.js';
|
|
2
|
+
export { f64, f64 as F64 } from './F64.js';
|
|
3
|
+
export { i8, i8 as I8 } from './I8.js';
|
|
4
|
+
export { i16, i16 as I16 } from './I16.js';
|
|
5
|
+
export { i32, i32 as I32 } from './I32.js';
|
|
6
|
+
export { i64, i64 as I64 } from './I64.js';
|
|
7
|
+
export { i128, i128 as I128 } from './I128.js';
|
|
8
|
+
export { i256, i256 as I256 } from './I256.js';
|
|
9
|
+
export { u8, u8 as U8 } from './U8.js';
|
|
10
|
+
export { u16, u16 as U16 } from './U16.js';
|
|
11
|
+
export { u32, u32 as U32 } from './U32.js';
|
|
12
|
+
export { u64, u64 as U64 } from './U64.js';
|
|
13
|
+
export { u128, u128 as U128 } from './U128.js';
|
|
14
|
+
export { u256, u256 as U256 } from './U256.js';
|
|
15
|
+
export { usize, usize as USize } from './USize.js';
|
package/types/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export * from
|
|
5
|
-
export * from "./helpers.js";
|
|
6
|
-
export * from "./interfaces.js";
|
|
7
|
-
export * from "./registry.js";
|
|
1
|
+
export * from './codec.js';
|
|
2
|
+
export * from './helpers.js';
|
|
3
|
+
export * from './interfaces.js';
|
|
4
|
+
export * from './registry.js';
|
package/utils/compareArray.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
1
|
import { isUndefined } from '@polkadot/util';
|
|
5
|
-
import { hasEq } from
|
|
6
|
-
|
|
7
|
-
// NOTE These are used internally and when comparing objects, expects that
|
|
8
|
-
// when the second is an Codec[] that the first has to be as well
|
|
2
|
+
import { hasEq } from './util.js';
|
|
9
3
|
export function compareArray(a, b) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
if (Array.isArray(b)) {
|
|
5
|
+
return (a.length === b.length) && isUndefined(a.find((v, index) => hasEq(v)
|
|
6
|
+
? !v.eq(b[index])
|
|
7
|
+
: v !== b[index]));
|
|
8
|
+
}
|
|
9
|
+
return false;
|
|
14
10
|
}
|
package/utils/compareMap.js
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
1
|
import { isObject, isUndefined } from '@polkadot/util';
|
|
5
|
-
import { hasEq } from
|
|
2
|
+
import { hasEq } from './util.js';
|
|
6
3
|
function hasMismatch(a, b) {
|
|
7
|
-
|
|
4
|
+
return isUndefined(a) || (hasEq(a)
|
|
5
|
+
? !a.eq(b)
|
|
6
|
+
: a !== b);
|
|
8
7
|
}
|
|
9
8
|
function notEntry(value) {
|
|
10
|
-
|
|
9
|
+
return !Array.isArray(value) || value.length !== 2;
|
|
11
10
|
}
|
|
12
11
|
function compareMapArray(a, b) {
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// equal number of entries and each entry in the array should match
|
|
13
|
+
return (a.size === b.length) && !b.some((e) => notEntry(e) ||
|
|
14
|
+
hasMismatch(a.get(e[0]), e[1]));
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
// NOTE These are used internally and when comparing objects, expects that
|
|
18
|
-
// when the second is an Map<string, Codec> that the first has to be as well
|
|
19
16
|
export function compareMap(a, b) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
if (Array.isArray(b)) {
|
|
18
|
+
return compareMapArray(a, b);
|
|
19
|
+
}
|
|
20
|
+
else if (b instanceof Map) {
|
|
21
|
+
return compareMapArray(a, [...b.entries()]);
|
|
22
|
+
}
|
|
23
|
+
else if (isObject(b)) {
|
|
24
|
+
return compareMapArray(a, Object.entries(b));
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
28
27
|
}
|
package/utils/compareSet.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
1
|
import { isObject } from '@polkadot/util';
|
|
5
2
|
function compareSetArray(a, b) {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
// equal number of entries and each entry in the array should match
|
|
4
|
+
return (a.size === b.length) && !b.some((e) => !a.has(e));
|
|
8
5
|
}
|
|
9
|
-
|
|
10
|
-
// NOTE These are used internally and when comparing objects, expects that
|
|
11
|
-
// when the second is an Set<string, Codec> that the first has to be as well
|
|
12
6
|
export function compareSet(a, b) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
if (Array.isArray(b)) {
|
|
8
|
+
return compareSetArray(a, b);
|
|
9
|
+
}
|
|
10
|
+
else if (b instanceof Set) {
|
|
11
|
+
return compareSetArray(a, [...b.values()]);
|
|
12
|
+
}
|
|
13
|
+
else if (isObject(b)) {
|
|
14
|
+
return compareSetArray(a, Object.values(b));
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
21
17
|
}
|
package/utils/decodeU8a.js
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
1
|
import { u8aToHex } from '@polkadot/util';
|
|
5
|
-
|
|
6
2
|
/** @internal */
|
|
7
|
-
function formatFailure(registry, fn, result, {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// console.error(JSON.stringify(result, null, 2));
|
|
20
|
-
|
|
21
|
-
return `${fn}: failed at ${u8aToHex(u8a.subarray(0, 16))}…${key ? ` on ${key}` : ''} (index ${i + 1}/${count})${type}:: ${message}`;
|
|
3
|
+
function formatFailure(registry, fn, result, { message }, u8a, i, count, Type, key) {
|
|
4
|
+
let type = '';
|
|
5
|
+
try {
|
|
6
|
+
type = `: ${new Type(registry).toRawType()}`;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
// ignore
|
|
10
|
+
}
|
|
11
|
+
// This is extra debugging info (we most-probably want this in in some way, shape or form,
|
|
12
|
+
// but at this point not quite sure how to include and format it (it can be quite massive)
|
|
13
|
+
// console.error(JSON.stringify(result, null, 2));
|
|
14
|
+
return `${fn}: failed at ${u8aToHex(u8a.subarray(0, 16))}…${key ? ` on ${key}` : ''} (index ${i + 1}/${count})${type}:: ${message}`;
|
|
22
15
|
}
|
|
23
|
-
|
|
24
16
|
/**
|
|
25
17
|
* @internal
|
|
26
18
|
*
|
|
@@ -32,22 +24,22 @@ function formatFailure(registry, fn, result, {
|
|
|
32
24
|
* @param types - The array of CodecClass to decode the U8a against.
|
|
33
25
|
*/
|
|
34
26
|
export function decodeU8a(registry, result, u8a, [Types, keys]) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
27
|
+
const count = result.length;
|
|
28
|
+
let offset = 0;
|
|
29
|
+
let i = 0;
|
|
30
|
+
try {
|
|
31
|
+
while (i < count) {
|
|
32
|
+
const value = new Types[i](registry, u8a.subarray(offset));
|
|
33
|
+
offset += value.initialU8aLength || value.encodedLength;
|
|
34
|
+
result[i] = value;
|
|
35
|
+
i++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
throw new Error(formatFailure(registry, 'decodeU8a', result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));
|
|
44
40
|
}
|
|
45
|
-
|
|
46
|
-
throw new Error(formatFailure(registry, 'decodeU8a', result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));
|
|
47
|
-
}
|
|
48
|
-
return [result, offset];
|
|
41
|
+
return [result, offset];
|
|
49
42
|
}
|
|
50
|
-
|
|
51
43
|
/**
|
|
52
44
|
* @internal
|
|
53
45
|
*
|
|
@@ -55,22 +47,22 @@ export function decodeU8a(registry, result, u8a, [Types, keys]) {
|
|
|
55
47
|
* is all on the hot-path, so it is not great, however there is (some) method behind the madness
|
|
56
48
|
*/
|
|
57
49
|
export function decodeU8aStruct(registry, result, u8a, [Types, keys]) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
50
|
+
const count = result.length;
|
|
51
|
+
let offset = 0;
|
|
52
|
+
let i = 0;
|
|
53
|
+
try {
|
|
54
|
+
while (i < count) {
|
|
55
|
+
const value = new Types[i](registry, u8a.subarray(offset));
|
|
56
|
+
offset += value.initialU8aLength || value.encodedLength;
|
|
57
|
+
result[i] = [keys[i], value];
|
|
58
|
+
i++;
|
|
59
|
+
}
|
|
67
60
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
catch (error) {
|
|
62
|
+
throw new Error(formatFailure(registry, 'decodeU8aStruct', result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));
|
|
63
|
+
}
|
|
64
|
+
return [result, offset];
|
|
72
65
|
}
|
|
73
|
-
|
|
74
66
|
/**
|
|
75
67
|
* @internal
|
|
76
68
|
*
|
|
@@ -78,18 +70,19 @@ export function decodeU8aStruct(registry, result, u8a, [Types, keys]) {
|
|
|
78
70
|
* is all on the hot-path, so it is not great, however there is (some) method behind the madness
|
|
79
71
|
*/
|
|
80
72
|
export function decodeU8aVec(registry, result, u8a, startAt, Type) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
73
|
+
const count = result.length;
|
|
74
|
+
let offset = startAt;
|
|
75
|
+
let i = 0;
|
|
76
|
+
try {
|
|
77
|
+
while (i < count) {
|
|
78
|
+
const value = new Type(registry, u8a.subarray(offset));
|
|
79
|
+
offset += value.initialU8aLength || value.encodedLength;
|
|
80
|
+
result[i] = value;
|
|
81
|
+
i++;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new Error(formatFailure(registry, 'decodeU8aVec', result, error, u8a.subarray(offset), i, count, Type));
|
|
90
86
|
}
|
|
91
|
-
|
|
92
|
-
throw new Error(formatFailure(registry, 'decodeU8aVec', result, error, u8a.subarray(offset), i, count, Type));
|
|
93
|
-
}
|
|
94
|
-
return [offset, offset - startAt];
|
|
87
|
+
return [offset, offset - startAt];
|
|
95
88
|
}
|
package/utils/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export { sanitize } from "./sanitize.js";
|
|
11
|
-
export { sortAsc, sortSet, sortMap } from "./sortValues.js";
|
|
12
|
-
export { typesToMap } from "./typesToMap.js";
|
|
1
|
+
export { compareArray } from './compareArray.js';
|
|
2
|
+
export { compareMap } from './compareMap.js';
|
|
3
|
+
export { compareSet } from './compareSet.js';
|
|
4
|
+
export { decodeU8a, decodeU8aStruct, decodeU8aVec } from './decodeU8a.js';
|
|
5
|
+
export { mapToTypeMap } from './mapToTypeMap.js';
|
|
6
|
+
export { typeToConstructor } from './typeToConstructor.js';
|
|
7
|
+
export { sanitize } from './sanitize.js';
|
|
8
|
+
export { sortAsc, sortSet, sortMap } from './sortValues.js';
|
|
9
|
+
export { typesToMap } from './typesToMap.js';
|
package/utils/mapToTypeMap.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import { typeToConstructor } from "./typeToConstructor.js";
|
|
5
|
-
|
|
1
|
+
import { typeToConstructor } from './typeToConstructor.js';
|
|
6
2
|
/**
|
|
7
3
|
* @description takes an input map of the form `{ [string]: string | CodecClass }` and returns a map of `{ [string]: CodecClass }`
|
|
8
4
|
*/
|
|
9
5
|
export function mapToTypeMap(registry, input) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
const entries = Object.entries(input);
|
|
7
|
+
const count = entries.length;
|
|
8
|
+
const output = [new Array(count), new Array(count)];
|
|
9
|
+
for (let i = 0; i < count; i++) {
|
|
10
|
+
output[1][i] = entries[i][0];
|
|
11
|
+
output[0][i] = typeToConstructor(registry, entries[i][1]);
|
|
12
|
+
}
|
|
13
|
+
return output;
|
|
18
14
|
}
|