@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/cjs/base/Tuple.js
CHANGED
|
@@ -1,126 +1,120 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
var _Tuple_Types;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
4
|
exports.Tuple = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
-
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const util_1 = require("@polkadot/util");
|
|
7
|
+
const Array_1 = require("../abstract/Array");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
13
9
|
function noopSetDefinition(d) {
|
|
14
|
-
|
|
10
|
+
return d;
|
|
15
11
|
}
|
|
16
|
-
|
|
17
12
|
/** @internal */
|
|
18
13
|
function decodeTuple(registry, result, value, Classes) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
if (Array.isArray(value)) {
|
|
15
|
+
const Types = Classes[0];
|
|
16
|
+
for (let i = 0; i < Types.length; i++) {
|
|
17
|
+
try {
|
|
18
|
+
const entry = value?.[i];
|
|
19
|
+
result[i] = entry instanceof Types[i]
|
|
20
|
+
? entry
|
|
21
|
+
: new Types[i](registry, entry);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw new Error(`Tuple: failed on ${i}:: ${error.message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return [result, 0];
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return (0, _utils.decodeU8a)(registry, result, (0, _util.u8aToU8a)(value), Classes);
|
|
32
|
-
} else if (!value || !result.length) {
|
|
33
|
-
const Types = Classes[0];
|
|
34
|
-
for (let i = 0; i < Types.length; i++) {
|
|
35
|
-
result[i] = new Types[i](registry);
|
|
29
|
+
else if ((0, util_1.isHex)(value)) {
|
|
30
|
+
return (0, utils_1.decodeU8a)(registry, result, (0, util_1.u8aToU8a)(value), Classes);
|
|
36
31
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
else if (!value || !result.length) {
|
|
33
|
+
const Types = Classes[0];
|
|
34
|
+
for (let i = 0; i < Types.length; i++) {
|
|
35
|
+
result[i] = new Types[i](registry);
|
|
36
|
+
}
|
|
37
|
+
return [result, 0];
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${(0, util_1.stringify)(value)}`);
|
|
40
40
|
}
|
|
41
|
-
|
|
42
41
|
/**
|
|
43
42
|
* @name Tuple
|
|
44
43
|
* @description
|
|
45
44
|
* A Tuple defines an anonymous fixed-length array, where each element has its
|
|
46
45
|
* own type. It extends the base JS `Array` object.
|
|
47
46
|
*/
|
|
48
|
-
class Tuple extends
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
47
|
+
class Tuple extends Array_1.AbstractArray {
|
|
48
|
+
constructor(registry, Types, value, { definition, setDefinition = noopSetDefinition } = {}) {
|
|
49
|
+
const Classes = definition || setDefinition(Array.isArray(Types)
|
|
50
|
+
? [Types.map((t) => (0, utils_1.typeToConstructor)(registry, t)), []]
|
|
51
|
+
: (0, util_1.isFunction)(Types) || (0, util_1.isString)(Types)
|
|
52
|
+
? [[(0, utils_1.typeToConstructor)(registry, Types)], []]
|
|
53
|
+
: (0, utils_1.mapToTypeMap)(registry, Types));
|
|
54
|
+
super(registry, Classes[0].length);
|
|
55
|
+
_Tuple_Types.set(this, void 0);
|
|
56
|
+
this.initialU8aLength = ((0, util_1.isU8a)(value)
|
|
57
|
+
? (0, utils_1.decodeU8a)(registry, this, value, Classes)
|
|
58
|
+
: decodeTuple(registry, this, value, Classes))[1];
|
|
59
|
+
tslib_1.__classPrivateFieldSet(this, _Tuple_Types, Classes, "f");
|
|
60
|
+
}
|
|
61
|
+
static with(Types) {
|
|
62
|
+
let definition;
|
|
63
|
+
// eslint-disable-next-line no-return-assign
|
|
64
|
+
const setDefinition = (d) => definition = d;
|
|
65
|
+
return class extends Tuple {
|
|
66
|
+
constructor(registry, value) {
|
|
67
|
+
super(registry, Types, value, { definition, setDefinition });
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @description The length of the value when encoded as a Uint8Array
|
|
73
|
+
*/
|
|
74
|
+
get encodedLength() {
|
|
75
|
+
let total = 0;
|
|
76
|
+
for (let i = 0; i < this.length; i++) {
|
|
77
|
+
total += this[i].encodedLength;
|
|
78
|
+
}
|
|
79
|
+
return total;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @description The types definition of the tuple
|
|
83
|
+
*/
|
|
84
|
+
get Types() {
|
|
85
|
+
return tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[1].length
|
|
86
|
+
? tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[1]
|
|
87
|
+
: tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => new T(this.registry).toRawType());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @description Returns a breakdown of the hex encoding for this Codec
|
|
91
|
+
*/
|
|
92
|
+
inspect() {
|
|
93
|
+
return {
|
|
94
|
+
inner: this.inspectInner()
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @description Returns the base runtime type name for this instance
|
|
99
|
+
*/
|
|
100
|
+
toRawType() {
|
|
101
|
+
const types = tslib_1.__classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => this.registry.getClassName(T) || new T(this.registry).toRawType());
|
|
102
|
+
return `(${types.join(',')})`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @description Returns the string representation of the value
|
|
106
|
+
*/
|
|
107
|
+
toString() {
|
|
108
|
+
// Overwrite the default toString representation of Array.
|
|
109
|
+
return (0, util_1.stringify)(this.toJSON());
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @description Encodes the value as a Uint8Array as per the SCALE specifications
|
|
113
|
+
* @param isBare true when the value has none of the type-specific prefixes (internal)
|
|
114
|
+
*/
|
|
115
|
+
toU8a(isBare) {
|
|
116
|
+
return (0, util_1.u8aConcatStrict)(this.toU8aInner(isBare));
|
|
82
117
|
}
|
|
83
|
-
return total;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @description The types definition of the tuple
|
|
88
|
-
*/
|
|
89
|
-
get Types() {
|
|
90
|
-
return this.#Types[1].length ? this.#Types[1] : this.#Types[0].map(T => new T(this.registry).toRawType());
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* @description Returns a breakdown of the hex encoding for this Codec
|
|
95
|
-
*/
|
|
96
|
-
inspect() {
|
|
97
|
-
return {
|
|
98
|
-
inner: this.inspectInner()
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* @description Returns the base runtime type name for this instance
|
|
104
|
-
*/
|
|
105
|
-
toRawType() {
|
|
106
|
-
const types = this.#Types[0].map(T => this.registry.getClassName(T) || new T(this.registry).toRawType());
|
|
107
|
-
return `(${types.join(',')})`;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @description Returns the string representation of the value
|
|
112
|
-
*/
|
|
113
|
-
toString() {
|
|
114
|
-
// Overwrite the default toString representation of Array.
|
|
115
|
-
return (0, _util.stringify)(this.toJSON());
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @description Encodes the value as a Uint8Array as per the SCALE specifications
|
|
120
|
-
* @param isBare true when the value has none of the type-specific prefixes (internal)
|
|
121
|
-
*/
|
|
122
|
-
toU8a(isBare) {
|
|
123
|
-
return (0, _util.u8aConcatStrict)(this.toU8aInner(isBare));
|
|
124
|
-
}
|
|
125
118
|
}
|
|
126
|
-
exports.Tuple = Tuple;
|
|
119
|
+
exports.Tuple = Tuple;
|
|
120
|
+
_Tuple_Types = new WeakMap();
|
package/cjs/base/UInt.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.UInt = void 0;
|
|
7
|
-
|
|
8
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
9
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
|
|
4
|
+
const Int_1 = require("../abstract/Int");
|
|
11
5
|
/**
|
|
12
6
|
* @name UInt
|
|
13
7
|
* @description
|
|
@@ -18,16 +12,16 @@ var _Int = require("../abstract/Int");
|
|
|
18
12
|
* is available here.
|
|
19
13
|
* @noInheritDoc
|
|
20
14
|
*/
|
|
21
|
-
class UInt extends
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
class UInt extends Int_1.AbstractInt {
|
|
16
|
+
static with(bitLength, typeName) {
|
|
17
|
+
return class extends UInt {
|
|
18
|
+
constructor(registry, value) {
|
|
19
|
+
super(registry, value, bitLength);
|
|
20
|
+
}
|
|
21
|
+
toRawType() {
|
|
22
|
+
return typeName || super.toRawType();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
32
26
|
}
|
|
33
27
|
exports.UInt = UInt;
|
package/cjs/base/Vec.js
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _Array = require("../abstract/Array");
|
|
10
|
-
var _utils = require("../utils");
|
|
11
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
12
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
-
|
|
2
|
+
var _Vec_Type;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Vec = exports.decodeVec = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const util_1 = require("@polkadot/util");
|
|
7
|
+
const Array_1 = require("../abstract/Array");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
14
9
|
const MAX_LENGTH = 64 * 1024;
|
|
15
|
-
const l = (0,
|
|
10
|
+
const l = (0, util_1.logger)('Vec');
|
|
16
11
|
function noopSetDefinition(d) {
|
|
17
|
-
|
|
12
|
+
return d;
|
|
18
13
|
}
|
|
19
14
|
function decodeVecLength(value) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
if (Array.isArray(value)) {
|
|
16
|
+
return [value, value.length, 0];
|
|
17
|
+
}
|
|
18
|
+
else if ((0, util_1.isU8a)(value) || (0, util_1.isHex)(value)) {
|
|
19
|
+
const u8a = (0, util_1.u8aToU8a)(value);
|
|
20
|
+
const [startAt, length] = (0, util_1.compactFromU8aLim)(u8a);
|
|
21
|
+
if (length > MAX_LENGTH) {
|
|
22
|
+
throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
|
|
23
|
+
}
|
|
24
|
+
return [u8a, length, startAt];
|
|
25
|
+
}
|
|
26
|
+
else if (!value) {
|
|
27
|
+
return [null, 0, 0];
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
} else if (!value) {
|
|
30
|
-
return [null, 0, 0];
|
|
31
|
-
}
|
|
32
|
-
throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${(0, _util.stringify)(value)}`);
|
|
29
|
+
throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${(0, util_1.stringify)(value)}`);
|
|
33
30
|
}
|
|
34
31
|
function decodeVec(registry, result, value, startAt, Type) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
const count = result.length;
|
|
34
|
+
for (let i = 0; i < count; i++) {
|
|
35
|
+
// 26/08/2022 this is actually a false positive - after recent eslint upgdates
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
37
|
+
const entry = value[i];
|
|
38
|
+
try {
|
|
39
|
+
result[i] = entry instanceof Type
|
|
40
|
+
? entry
|
|
41
|
+
: new Type(registry, entry);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
l.error(`Unable to decode on index ${i}`, error.message);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return [0, 0];
|
|
47
49
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// we don't need more checks, we already limited it via the length decoding
|
|
54
|
-
return (0, _utils.decodeU8aVec)(registry, result, (0, _util.u8aToU8a)(value), startAt, Type);
|
|
50
|
+
else if (!value) {
|
|
51
|
+
return [0, 0];
|
|
52
|
+
}
|
|
53
|
+
// we don't need more checks, we already limited it via the length decoding
|
|
54
|
+
return (0, utils_1.decodeU8aVec)(registry, result, (0, util_1.u8aToU8a)(value), startAt, Type);
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
exports.decodeVec = decodeVec;
|
|
57
57
|
/**
|
|
58
58
|
* @name Vec
|
|
59
59
|
* @description
|
|
@@ -61,60 +61,53 @@ function decodeVec(registry, result, value, startAt, Type) {
|
|
|
61
61
|
* construction with the passed `Type` in the constructor. It is an extension to Array, providing
|
|
62
62
|
* specific encoding/decoding on top of the base type.
|
|
63
63
|
*/
|
|
64
|
-
class Vec extends
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
64
|
+
class Vec extends Array_1.AbstractArray {
|
|
65
|
+
constructor(registry, Type, value = [], { definition, setDefinition = noopSetDefinition } = {}) {
|
|
66
|
+
const [decodeFrom, length, startAt] = decodeVecLength(value);
|
|
67
|
+
super(registry, length);
|
|
68
|
+
_Vec_Type.set(this, void 0);
|
|
69
|
+
tslib_1.__classPrivateFieldSet(this, _Vec_Type, definition || setDefinition((0, utils_1.typeToConstructor)(registry, Type)), "f");
|
|
70
|
+
this.initialU8aLength = ((0, util_1.isU8a)(decodeFrom)
|
|
71
|
+
? (0, utils_1.decodeU8aVec)(registry, this, decodeFrom, startAt, tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))
|
|
72
|
+
: decodeVec(registry, this, decodeFrom, startAt, tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")))[0];
|
|
73
|
+
}
|
|
74
|
+
static with(Type) {
|
|
75
|
+
let definition;
|
|
76
|
+
// eslint-disable-next-line no-return-assign
|
|
77
|
+
const setDefinition = (d) => (definition = d);
|
|
78
|
+
return class extends Vec {
|
|
79
|
+
constructor(registry, value) {
|
|
80
|
+
super(registry, Type, value, { definition, setDefinition });
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @description The type for the items
|
|
86
|
+
*/
|
|
87
|
+
get Type() {
|
|
88
|
+
return tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f").name;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @description Finds the index of the value in the array
|
|
92
|
+
*/
|
|
93
|
+
indexOf(_other) {
|
|
94
|
+
// convert type first, this removes overhead from the eq
|
|
95
|
+
const other = _other instanceof tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")
|
|
96
|
+
? _other
|
|
97
|
+
: new (tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry, _other);
|
|
98
|
+
for (let i = 0; i < this.length; i++) {
|
|
99
|
+
if (other.eq(this[i])) {
|
|
100
|
+
return i;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return -1;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @description Returns the base runtime type name for this instance
|
|
107
|
+
*/
|
|
108
|
+
toRawType() {
|
|
109
|
+
return `Vec<${this.registry.getClassName(tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f")) || new (tslib_1.__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry).toRawType()}>`;
|
|
109
110
|
}
|
|
110
|
-
return -1;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* @description Returns the base runtime type name for this instance
|
|
115
|
-
*/
|
|
116
|
-
toRawType() {
|
|
117
|
-
return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`;
|
|
118
|
-
}
|
|
119
111
|
}
|
|
120
|
-
exports.Vec = Vec;
|
|
112
|
+
exports.Vec = Vec;
|
|
113
|
+
_Vec_Type = new WeakMap();
|
package/cjs/base/VecAny.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.VecAny = void 0;
|
|
7
|
-
|
|
8
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
9
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
|
|
4
|
+
const Array_1 = require("../abstract/Array");
|
|
11
5
|
/**
|
|
12
6
|
* @name VecAny
|
|
13
7
|
* @description
|
|
@@ -15,13 +9,13 @@ var _Array = require("../abstract/Array");
|
|
|
15
9
|
* a vector, this can be used to manage array-like structures with variable arguments of
|
|
16
10
|
* any types
|
|
17
11
|
*/
|
|
18
|
-
class VecAny extends
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
class VecAny extends Array_1.AbstractArray {
|
|
13
|
+
/**
|
|
14
|
+
* @description Returns the base runtime type name for this instance
|
|
15
|
+
*/
|
|
16
|
+
toRawType() {
|
|
17
|
+
// FIXME This is basically an any type, cannot instantiate via createType
|
|
18
|
+
return 'Vec<Codec>';
|
|
19
|
+
}
|
|
26
20
|
}
|
|
27
21
|
exports.VecAny = VecAny;
|