@polkadot/types-codec 9.14.2 → 10.1.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.
Files changed (229) hide show
  1. package/abstract/Array.d.ts +1 -1
  2. package/abstract/Array.js +136 -155
  3. package/abstract/Base.d.ts +1 -1
  4. package/abstract/Base.js +95 -113
  5. package/abstract/Int.d.ts +1 -1
  6. package/abstract/Int.js +209 -220
  7. package/abstract/Object.d.ts +1 -1
  8. package/abstract/Object.js +29 -45
  9. package/abstract/index.d.ts +3 -3
  10. package/abstract/index.js +3 -6
  11. package/base/Compact.d.ts +1 -1
  12. package/base/Compact.js +149 -166
  13. package/base/DoNotConstruct.d.ts +1 -1
  14. package/base/DoNotConstruct.js +62 -65
  15. package/base/Enum.d.ts +1 -1
  16. package/base/Enum.js +347 -383
  17. package/base/Int.d.ts +2 -2
  18. package/base/Int.js +14 -18
  19. package/base/Null.d.ts +1 -1
  20. package/base/Null.js +68 -82
  21. package/base/Option.d.ts +1 -1
  22. package/base/Option.js +217 -227
  23. package/base/Result.d.ts +2 -2
  24. package/base/Result.js +54 -67
  25. package/base/Tuple.d.ts +2 -2
  26. package/base/Tuple.js +100 -102
  27. package/base/UInt.d.ts +2 -2
  28. package/base/UInt.js +11 -15
  29. package/base/Vec.d.ts +2 -2
  30. package/base/Vec.js +88 -90
  31. package/base/VecAny.d.ts +2 -2
  32. package/base/VecAny.js +8 -12
  33. package/base/VecFixed.d.ts +2 -2
  34. package/base/VecFixed.js +63 -71
  35. package/base/index.d.ts +12 -12
  36. package/base/index.js +12 -15
  37. package/bundle.d.ts +7 -7
  38. package/bundle.js +7 -10
  39. package/cjs/abstract/Array.js +138 -159
  40. package/cjs/abstract/Base.js +96 -117
  41. package/cjs/abstract/Int.js +215 -238
  42. package/cjs/abstract/Object.js +30 -49
  43. package/cjs/abstract/index.js +8 -25
  44. package/cjs/base/Compact.js +151 -173
  45. package/cjs/base/DoNotConstruct.js +63 -70
  46. package/cjs/base/Enum.js +350 -396
  47. package/cjs/base/Int.js +16 -24
  48. package/cjs/base/Null.js +70 -86
  49. package/cjs/base/Option.js +220 -234
  50. package/cjs/base/Result.js +56 -71
  51. package/cjs/base/Tuple.js +103 -109
  52. package/cjs/base/UInt.js +13 -19
  53. package/cjs/base/Vec.js +94 -101
  54. package/cjs/base/VecAny.js +10 -16
  55. package/cjs/base/VecFixed.js +66 -79
  56. package/cjs/base/index.js +26 -88
  57. package/cjs/bundle.js +11 -86
  58. package/cjs/detectOther.js +2 -10
  59. package/cjs/detectPackage.js +6 -11
  60. package/cjs/extended/BTreeMap.js +10 -16
  61. package/cjs/extended/BTreeSet.js +162 -178
  62. package/cjs/extended/BitVec.js +70 -77
  63. package/cjs/extended/Bytes.js +59 -62
  64. package/cjs/extended/HashMap.js +10 -16
  65. package/cjs/extended/Linkage.js +50 -60
  66. package/cjs/extended/Map.js +176 -181
  67. package/cjs/extended/OptionBool.js +65 -68
  68. package/cjs/extended/Range.js +37 -46
  69. package/cjs/extended/RangeInclusive.js +13 -21
  70. package/cjs/extended/Type.js +14 -22
  71. package/cjs/extended/U8aFixed.js +33 -43
  72. package/cjs/extended/WrapperKeepOpaque.js +99 -99
  73. package/cjs/extended/WrapperOpaque.js +19 -28
  74. package/cjs/extended/index.js +31 -108
  75. package/cjs/index.js +4 -16
  76. package/cjs/native/Bool.js +101 -116
  77. package/cjs/native/Date.js +125 -151
  78. package/cjs/native/Float.js +95 -114
  79. package/cjs/native/Json.js +102 -124
  80. package/cjs/native/Raw.js +128 -150
  81. package/cjs/native/Set.js +200 -220
  82. package/cjs/native/Struct.data.js +2 -9
  83. package/cjs/native/Struct.js +238 -251
  84. package/cjs/native/Text.js +137 -149
  85. package/cjs/native/index.js +21 -78
  86. package/cjs/packageInfo.js +2 -16
  87. package/cjs/primitive/F32.js +8 -11
  88. package/cjs/primitive/F64.js +8 -11
  89. package/cjs/primitive/I128.js +8 -11
  90. package/cjs/primitive/I16.js +8 -11
  91. package/cjs/primitive/I256.js +8 -11
  92. package/cjs/primitive/I32.js +8 -11
  93. package/cjs/primitive/I64.js +8 -11
  94. package/cjs/primitive/I8.js +8 -11
  95. package/cjs/primitive/U128.js +8 -11
  96. package/cjs/primitive/U16.js +8 -11
  97. package/cjs/primitive/U256.js +8 -11
  98. package/cjs/primitive/U32.js +8 -11
  99. package/cjs/primitive/U64.js +8 -11
  100. package/cjs/primitive/U8.js +8 -11
  101. package/cjs/primitive/USize.js +7 -13
  102. package/cjs/primitive/index.js +47 -199
  103. package/cjs/types/codec.js +2 -1
  104. package/cjs/types/helpers.js +2 -1
  105. package/cjs/types/index.js +6 -48
  106. package/cjs/types/interfaces.js +2 -1
  107. package/cjs/types/registry.js +2 -1
  108. package/cjs/utils/compareArray.js +12 -17
  109. package/cjs/utils/compareMap.js +23 -26
  110. package/cjs/utils/compareSet.js +17 -23
  111. package/cjs/utils/decodeU8a.js +63 -74
  112. package/cjs/utils/index.js +24 -91
  113. package/cjs/utils/mapToTypeMap.js +13 -18
  114. package/cjs/utils/sanitize.js +198 -204
  115. package/cjs/utils/sortValues.js +39 -49
  116. package/cjs/utils/typeToConstructor.js +8 -11
  117. package/cjs/utils/typesToMap.js +10 -16
  118. package/cjs/utils/util.js +6 -11
  119. package/detectOther.js +0 -5
  120. package/detectPackage.js +2 -7
  121. package/extended/BTreeMap.d.ts +2 -2
  122. package/extended/BTreeMap.js +8 -11
  123. package/extended/BTreeSet.d.ts +1 -1
  124. package/extended/BTreeSet.js +159 -172
  125. package/extended/BitVec.d.ts +2 -2
  126. package/extended/BitVec.js +67 -71
  127. package/extended/Bytes.d.ts +2 -2
  128. package/extended/Bytes.js +56 -57
  129. package/extended/HashMap.d.ts +2 -2
  130. package/extended/HashMap.js +8 -11
  131. package/extended/Linkage.d.ts +4 -4
  132. package/extended/Linkage.js +46 -51
  133. package/extended/Map.d.ts +1 -1
  134. package/extended/Map.js +173 -174
  135. package/extended/OptionBool.d.ts +3 -3
  136. package/extended/OptionBool.js +62 -62
  137. package/extended/Range.d.ts +2 -2
  138. package/extended/Range.js +35 -40
  139. package/extended/RangeInclusive.d.ts +2 -2
  140. package/extended/RangeInclusive.js +11 -16
  141. package/extended/Type.d.ts +2 -2
  142. package/extended/Type.js +12 -17
  143. package/extended/U8aFixed.d.ts +2 -2
  144. package/extended/U8aFixed.js +30 -36
  145. package/extended/WrapperKeepOpaque.d.ts +2 -2
  146. package/extended/WrapperKeepOpaque.js +96 -92
  147. package/extended/WrapperOpaque.d.ts +2 -2
  148. package/extended/WrapperOpaque.js +17 -23
  149. package/extended/index.d.ts +14 -14
  150. package/extended/index.js +14 -17
  151. package/index.d.ts +2 -2
  152. package/index.js +2 -5
  153. package/native/Bool.d.ts +1 -1
  154. package/native/Bool.js +99 -111
  155. package/native/Date.d.ts +1 -1
  156. package/native/Date.js +123 -144
  157. package/native/Float.d.ts +1 -1
  158. package/native/Float.js +93 -108
  159. package/native/Json.d.ts +1 -1
  160. package/native/Json.js +100 -114
  161. package/native/Raw.d.ts +1 -1
  162. package/native/Raw.js +126 -146
  163. package/native/Set.d.ts +1 -1
  164. package/native/Set.js +197 -211
  165. package/native/Struct.d.ts +1 -1
  166. package/native/Struct.data.js +0 -3
  167. package/native/Struct.js +235 -242
  168. package/native/Text.d.ts +1 -1
  169. package/native/Text.js +135 -144
  170. package/native/index.d.ts +8 -8
  171. package/native/index.js +8 -11
  172. package/package.json +8 -5
  173. package/packageInfo.js +1 -11
  174. package/primitive/F32.d.ts +2 -2
  175. package/primitive/F32.js +6 -7
  176. package/primitive/F64.d.ts +2 -2
  177. package/primitive/F64.js +6 -7
  178. package/primitive/I128.d.ts +2 -2
  179. package/primitive/I128.js +6 -7
  180. package/primitive/I16.d.ts +2 -2
  181. package/primitive/I16.js +6 -7
  182. package/primitive/I256.d.ts +2 -2
  183. package/primitive/I256.js +6 -7
  184. package/primitive/I32.d.ts +2 -2
  185. package/primitive/I32.js +6 -7
  186. package/primitive/I64.d.ts +2 -2
  187. package/primitive/I64.js +6 -7
  188. package/primitive/I8.d.ts +2 -2
  189. package/primitive/I8.js +6 -7
  190. package/primitive/U128.d.ts +2 -2
  191. package/primitive/U128.js +6 -7
  192. package/primitive/U16.d.ts +2 -2
  193. package/primitive/U16.js +6 -7
  194. package/primitive/U256.d.ts +2 -2
  195. package/primitive/U256.js +6 -7
  196. package/primitive/U32.d.ts +2 -2
  197. package/primitive/U32.js +6 -7
  198. package/primitive/U64.d.ts +2 -2
  199. package/primitive/U64.js +6 -7
  200. package/primitive/U8.d.ts +2 -2
  201. package/primitive/U8.js +6 -7
  202. package/primitive/USize.d.ts +2 -2
  203. package/primitive/USize.js +5 -9
  204. package/primitive/index.d.ts +15 -15
  205. package/primitive/index.js +15 -18
  206. package/types/codec.d.ts +3 -3
  207. package/types/helpers.d.ts +1 -1
  208. package/types/index.d.ts +4 -4
  209. package/types/index.js +4 -7
  210. package/types/interfaces.d.ts +2 -2
  211. package/types/registry.d.ts +3 -3
  212. package/utils/compareArray.js +7 -11
  213. package/utils/compareMap.js +18 -19
  214. package/utils/compareSet.js +12 -16
  215. package/utils/decodeU8a.d.ts +1 -1
  216. package/utils/decodeU8a.js +54 -61
  217. package/utils/index.d.ts +9 -9
  218. package/utils/index.js +9 -12
  219. package/utils/mapToTypeMap.d.ts +1 -1
  220. package/utils/mapToTypeMap.js +9 -13
  221. package/utils/sanitize.d.ts +1 -1
  222. package/utils/sanitize.js +182 -185
  223. package/utils/sortValues.d.ts +1 -1
  224. package/utils/sortValues.js +32 -36
  225. package/utils/typeToConstructor.d.ts +1 -1
  226. package/utils/typeToConstructor.js +3 -4
  227. package/utils/typesToMap.d.ts +1 -1
  228. package/utils/typesToMap.js +5 -8
  229. package/utils/util.js +1 -4
package/base/Tuple.js CHANGED
@@ -1,38 +1,40 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
1
+ var _Tuple_Types;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
4
3
  import { isFunction, isHex, isString, isU8a, stringify, u8aConcatStrict, u8aToU8a } from '@polkadot/util';
5
- import { AbstractArray } from "../abstract/Array.js";
6
- import { decodeU8a, mapToTypeMap, typeToConstructor } from "../utils/index.js";
4
+ import { AbstractArray } from '../abstract/Array.js';
5
+ import { decodeU8a, mapToTypeMap, typeToConstructor } from '../utils/index.js';
7
6
  function noopSetDefinition(d) {
8
- return d;
7
+ return d;
9
8
  }
10
-
11
9
  /** @internal */
12
10
  function decodeTuple(registry, result, value, Classes) {
13
- if (Array.isArray(value)) {
14
- const Types = Classes[0];
15
- for (let i = 0; i < Types.length; i++) {
16
- try {
17
- const entry = value == null ? void 0 : value[i];
18
- result[i] = entry instanceof Types[i] ? entry : new Types[i](registry, entry);
19
- } catch (error) {
20
- throw new Error(`Tuple: failed on ${i}:: ${error.message}`);
21
- }
11
+ if (Array.isArray(value)) {
12
+ const Types = Classes[0];
13
+ for (let i = 0; i < Types.length; i++) {
14
+ try {
15
+ const entry = value?.[i];
16
+ result[i] = entry instanceof Types[i]
17
+ ? entry
18
+ : new Types[i](registry, entry);
19
+ }
20
+ catch (error) {
21
+ throw new Error(`Tuple: failed on ${i}:: ${error.message}`);
22
+ }
23
+ }
24
+ return [result, 0];
22
25
  }
23
- return [result, 0];
24
- } else if (isHex(value)) {
25
- return decodeU8a(registry, result, u8aToU8a(value), Classes);
26
- } else if (!value || !result.length) {
27
- const Types = Classes[0];
28
- for (let i = 0; i < Types.length; i++) {
29
- result[i] = new Types[i](registry);
26
+ else if (isHex(value)) {
27
+ return decodeU8a(registry, result, u8aToU8a(value), Classes);
30
28
  }
31
- return [result, 0];
32
- }
33
- throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${stringify(value)}`);
29
+ else if (!value || !result.length) {
30
+ const Types = Classes[0];
31
+ for (let i = 0; i < Types.length; i++) {
32
+ result[i] = new Types[i](registry);
33
+ }
34
+ return [result, 0];
35
+ }
36
+ throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${stringify(value)}`);
34
37
  }
35
-
36
38
  /**
37
39
  * @name Tuple
38
40
  * @description
@@ -40,79 +42,75 @@ function decodeTuple(registry, result, value, Classes) {
40
42
  * own type. It extends the base JS `Array` object.
41
43
  */
42
44
  export class Tuple extends AbstractArray {
43
- #Types;
44
- constructor(registry, Types, value, {
45
- definition,
46
- setDefinition = noopSetDefinition
47
- } = {}) {
48
- const Classes = definition || setDefinition(Array.isArray(Types) ? [Types.map(t => typeToConstructor(registry, t)), []] : isFunction(Types) || isString(Types) ? [[typeToConstructor(registry, Types)], []] : mapToTypeMap(registry, Types));
49
- super(registry, Classes[0].length);
50
- this.initialU8aLength = (isU8a(value) ? decodeU8a(registry, this, value, Classes) : decodeTuple(registry, this, value, Classes))[1];
51
- this.#Types = Classes;
52
- }
53
- static with(Types) {
54
- let definition;
55
-
56
- // eslint-disable-next-line no-return-assign
57
- const setDefinition = d => definition = d;
58
- return class extends Tuple {
59
- constructor(registry, value) {
60
- super(registry, Types, value, {
61
- definition,
62
- setDefinition
63
- });
64
- }
65
- };
66
- }
67
-
68
- /**
69
- * @description The length of the value when encoded as a Uint8Array
70
- */
71
- get encodedLength() {
72
- let total = 0;
73
- for (let i = 0; i < this.length; i++) {
74
- total += this[i].encodedLength;
45
+ constructor(registry, Types, value, { definition, setDefinition = noopSetDefinition } = {}) {
46
+ const Classes = definition || setDefinition(Array.isArray(Types)
47
+ ? [Types.map((t) => typeToConstructor(registry, t)), []]
48
+ : isFunction(Types) || isString(Types)
49
+ ? [[typeToConstructor(registry, Types)], []]
50
+ : mapToTypeMap(registry, Types));
51
+ super(registry, Classes[0].length);
52
+ _Tuple_Types.set(this, void 0);
53
+ this.initialU8aLength = (isU8a(value)
54
+ ? decodeU8a(registry, this, value, Classes)
55
+ : decodeTuple(registry, this, value, Classes))[1];
56
+ __classPrivateFieldSet(this, _Tuple_Types, Classes, "f");
57
+ }
58
+ static with(Types) {
59
+ let definition;
60
+ // eslint-disable-next-line no-return-assign
61
+ const setDefinition = (d) => definition = d;
62
+ return class extends Tuple {
63
+ constructor(registry, value) {
64
+ super(registry, Types, value, { definition, setDefinition });
65
+ }
66
+ };
67
+ }
68
+ /**
69
+ * @description The length of the value when encoded as a Uint8Array
70
+ */
71
+ get encodedLength() {
72
+ let total = 0;
73
+ for (let i = 0; i < this.length; i++) {
74
+ total += this[i].encodedLength;
75
+ }
76
+ return total;
77
+ }
78
+ /**
79
+ * @description The types definition of the tuple
80
+ */
81
+ get Types() {
82
+ return __classPrivateFieldGet(this, _Tuple_Types, "f")[1].length
83
+ ? __classPrivateFieldGet(this, _Tuple_Types, "f")[1]
84
+ : __classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => new T(this.registry).toRawType());
85
+ }
86
+ /**
87
+ * @description Returns a breakdown of the hex encoding for this Codec
88
+ */
89
+ inspect() {
90
+ return {
91
+ inner: this.inspectInner()
92
+ };
75
93
  }
76
- return total;
77
- }
78
-
79
- /**
80
- * @description The types definition of the tuple
81
- */
82
- get Types() {
83
- return this.#Types[1].length ? this.#Types[1] : this.#Types[0].map(T => new T(this.registry).toRawType());
84
- }
85
-
86
- /**
87
- * @description Returns a breakdown of the hex encoding for this Codec
88
- */
89
- inspect() {
90
- return {
91
- inner: this.inspectInner()
92
- };
93
- }
94
-
95
- /**
96
- * @description Returns the base runtime type name for this instance
97
- */
98
- toRawType() {
99
- const types = this.#Types[0].map(T => this.registry.getClassName(T) || new T(this.registry).toRawType());
100
- return `(${types.join(',')})`;
101
- }
102
-
103
- /**
104
- * @description Returns the string representation of the value
105
- */
106
- toString() {
107
- // Overwrite the default toString representation of Array.
108
- return stringify(this.toJSON());
109
- }
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 u8aConcatStrict(this.toU8aInner(isBare));
117
- }
118
- }
94
+ /**
95
+ * @description Returns the base runtime type name for this instance
96
+ */
97
+ toRawType() {
98
+ const types = __classPrivateFieldGet(this, _Tuple_Types, "f")[0].map((T) => this.registry.getClassName(T) || new T(this.registry).toRawType());
99
+ return `(${types.join(',')})`;
100
+ }
101
+ /**
102
+ * @description Returns the string representation of the value
103
+ */
104
+ toString() {
105
+ // Overwrite the default toString representation of Array.
106
+ return stringify(this.toJSON());
107
+ }
108
+ /**
109
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
110
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
111
+ */
112
+ toU8a(isBare) {
113
+ return u8aConcatStrict(this.toU8aInner(isBare));
114
+ }
115
+ }
116
+ _Tuple_Types = new WeakMap();
package/base/UInt.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { CodecClass, UIntBitLength } from '../types';
2
- import { AbstractInt } from '../abstract/Int';
1
+ import type { CodecClass, UIntBitLength } from '../types/index.js';
2
+ import { AbstractInt } from '../abstract/Int.js';
3
3
  /**
4
4
  * @name UInt
5
5
  * @description
package/base/UInt.js CHANGED
@@ -1,8 +1,4 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { AbstractInt } from "../abstract/Int.js";
5
-
1
+ import { AbstractInt } from '../abstract/Int.js';
6
2
  /**
7
3
  * @name UInt
8
4
  * @description
@@ -14,14 +10,14 @@ import { AbstractInt } from "../abstract/Int.js";
14
10
  * @noInheritDoc
15
11
  */
16
12
  export class UInt extends AbstractInt {
17
- static with(bitLength, typeName) {
18
- return class extends UInt {
19
- constructor(registry, value) {
20
- super(registry, value, bitLength);
21
- }
22
- toRawType() {
23
- return typeName || super.toRawType();
24
- }
25
- };
26
- }
13
+ static with(bitLength, typeName) {
14
+ return class extends UInt {
15
+ constructor(registry, value) {
16
+ super(registry, value, bitLength);
17
+ }
18
+ toRawType() {
19
+ return typeName || super.toRawType();
20
+ }
21
+ };
22
+ }
27
23
  }
package/base/Vec.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { HexString } from '@polkadot/util/types';
2
- import type { Codec, CodecClass, Registry } from '../types';
3
- import { AbstractArray } from '../abstract/Array';
2
+ import type { Codec, CodecClass, Registry } from '../types/index.js';
3
+ import { AbstractArray } from '../abstract/Array.js';
4
4
  interface Options<T> {
5
5
  definition?: CodecClass<T>;
6
6
  setDefinition?: (d: CodecClass<T>) => CodecClass<T>;
package/base/Vec.js CHANGED
@@ -1,52 +1,55 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
1
+ var _Vec_Type;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
4
3
  import { compactFromU8aLim, isHex, isU8a, logger, stringify, u8aToU8a } from '@polkadot/util';
5
- import { AbstractArray } from "../abstract/Array.js";
6
- import { decodeU8aVec, typeToConstructor } from "../utils/index.js";
4
+ import { AbstractArray } from '../abstract/Array.js';
5
+ import { decodeU8aVec, typeToConstructor } from '../utils/index.js';
7
6
  const MAX_LENGTH = 64 * 1024;
8
7
  const l = logger('Vec');
9
8
  function noopSetDefinition(d) {
10
- return d;
9
+ return d;
11
10
  }
12
11
  function decodeVecLength(value) {
13
- if (Array.isArray(value)) {
14
- return [value, value.length, 0];
15
- } else if (isU8a(value) || isHex(value)) {
16
- const u8a = u8aToU8a(value);
17
- const [startAt, length] = compactFromU8aLim(u8a);
18
- if (length > MAX_LENGTH) {
19
- throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
12
+ if (Array.isArray(value)) {
13
+ return [value, value.length, 0];
20
14
  }
21
- return [u8a, length, startAt];
22
- } else if (!value) {
23
- return [null, 0, 0];
24
- }
25
- throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${stringify(value)}`);
15
+ else if (isU8a(value) || isHex(value)) {
16
+ const u8a = u8aToU8a(value);
17
+ const [startAt, length] = compactFromU8aLim(u8a);
18
+ if (length > MAX_LENGTH) {
19
+ throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
20
+ }
21
+ return [u8a, length, startAt];
22
+ }
23
+ else if (!value) {
24
+ return [null, 0, 0];
25
+ }
26
+ throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${stringify(value)}`);
26
27
  }
27
28
  export function decodeVec(registry, result, value, startAt, Type) {
28
- if (Array.isArray(value)) {
29
- const count = result.length;
30
- for (let i = 0; i < count; i++) {
31
- // 26/08/2022 this is actually a false positive - after recent eslint upgdates
32
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
33
- const entry = value[i];
34
- try {
35
- result[i] = entry instanceof Type ? entry : new Type(registry, entry);
36
- } catch (error) {
37
- l.error(`Unable to decode on index ${i}`, error.message);
38
- throw error;
39
- }
29
+ if (Array.isArray(value)) {
30
+ const count = result.length;
31
+ for (let i = 0; i < count; i++) {
32
+ // 26/08/2022 this is actually a false positive - after recent eslint upgdates
33
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
34
+ const entry = value[i];
35
+ try {
36
+ result[i] = entry instanceof Type
37
+ ? entry
38
+ : new Type(registry, entry);
39
+ }
40
+ catch (error) {
41
+ l.error(`Unable to decode on index ${i}`, error.message);
42
+ throw error;
43
+ }
44
+ }
45
+ return [0, 0];
40
46
  }
41
- return [0, 0];
42
- } else if (!value) {
43
- return [0, 0];
44
- }
45
-
46
- // we don't need more checks, we already limited it via the length decoding
47
- return decodeU8aVec(registry, result, u8aToU8a(value), startAt, Type);
47
+ else if (!value) {
48
+ return [0, 0];
49
+ }
50
+ // we don't need more checks, we already limited it via the length decoding
51
+ return decodeU8aVec(registry, result, u8aToU8a(value), startAt, Type);
48
52
  }
49
-
50
53
  /**
51
54
  * @name Vec
52
55
  * @description
@@ -55,56 +58,51 @@ export function decodeVec(registry, result, value, startAt, Type) {
55
58
  * specific encoding/decoding on top of the base type.
56
59
  */
57
60
  export class Vec extends AbstractArray {
58
- #Type;
59
- constructor(registry, Type, value = [], {
60
- definition,
61
- setDefinition = noopSetDefinition
62
- } = {}) {
63
- const [decodeFrom, length, startAt] = decodeVecLength(value);
64
- super(registry, length);
65
- this.#Type = definition || setDefinition(typeToConstructor(registry, Type));
66
- this.initialU8aLength = (isU8a(decodeFrom) ? decodeU8aVec(registry, this, decodeFrom, startAt, this.#Type) : decodeVec(registry, this, decodeFrom, startAt, this.#Type))[0];
67
- }
68
- static with(Type) {
69
- let definition;
70
-
71
- // eslint-disable-next-line no-return-assign
72
- const setDefinition = d => definition = d;
73
- return class extends Vec {
74
- constructor(registry, value) {
75
- super(registry, Type, value, {
76
- definition,
77
- setDefinition
78
- });
79
- }
80
- };
81
- }
82
-
83
- /**
84
- * @description The type for the items
85
- */
86
- get Type() {
87
- return this.#Type.name;
88
- }
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 this.#Type ? _other : new this.#Type(this.registry, _other);
96
- for (let i = 0; i < this.length; i++) {
97
- if (other.eq(this[i])) {
98
- return i;
99
- }
61
+ constructor(registry, Type, value = [], { definition, setDefinition = noopSetDefinition } = {}) {
62
+ const [decodeFrom, length, startAt] = decodeVecLength(value);
63
+ super(registry, length);
64
+ _Vec_Type.set(this, void 0);
65
+ __classPrivateFieldSet(this, _Vec_Type, definition || setDefinition(typeToConstructor(registry, Type)), "f");
66
+ this.initialU8aLength = (isU8a(decodeFrom)
67
+ ? decodeU8aVec(registry, this, decodeFrom, startAt, __classPrivateFieldGet(this, _Vec_Type, "f"))
68
+ : decodeVec(registry, this, decodeFrom, startAt, __classPrivateFieldGet(this, _Vec_Type, "f")))[0];
69
+ }
70
+ static with(Type) {
71
+ let definition;
72
+ // eslint-disable-next-line no-return-assign
73
+ const setDefinition = (d) => (definition = d);
74
+ return class extends Vec {
75
+ constructor(registry, value) {
76
+ super(registry, Type, value, { definition, setDefinition });
77
+ }
78
+ };
100
79
  }
101
- return -1;
102
- }
103
-
104
- /**
105
- * @description Returns the base runtime type name for this instance
106
- */
107
- toRawType() {
108
- return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`;
109
- }
110
- }
80
+ /**
81
+ * @description The type for the items
82
+ */
83
+ get Type() {
84
+ return __classPrivateFieldGet(this, _Vec_Type, "f").name;
85
+ }
86
+ /**
87
+ * @description Finds the index of the value in the array
88
+ */
89
+ indexOf(_other) {
90
+ // convert type first, this removes overhead from the eq
91
+ const other = _other instanceof __classPrivateFieldGet(this, _Vec_Type, "f")
92
+ ? _other
93
+ : new (__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry, _other);
94
+ for (let i = 0; i < this.length; i++) {
95
+ if (other.eq(this[i])) {
96
+ return i;
97
+ }
98
+ }
99
+ return -1;
100
+ }
101
+ /**
102
+ * @description Returns the base runtime type name for this instance
103
+ */
104
+ toRawType() {
105
+ return `Vec<${this.registry.getClassName(__classPrivateFieldGet(this, _Vec_Type, "f")) || new (__classPrivateFieldGet(this, _Vec_Type, "f"))(this.registry).toRawType()}>`;
106
+ }
107
+ }
108
+ _Vec_Type = new WeakMap();
package/base/VecAny.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { Codec } from '../types';
2
- import { AbstractArray } from '../abstract/Array';
1
+ import type { Codec } from '../types/index.js';
2
+ import { AbstractArray } from '../abstract/Array.js';
3
3
  /**
4
4
  * @name VecAny
5
5
  * @description
package/base/VecAny.js CHANGED
@@ -1,8 +1,4 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { AbstractArray } from "../abstract/Array.js";
5
-
1
+ import { AbstractArray } from '../abstract/Array.js';
6
2
  /**
7
3
  * @name VecAny
8
4
  * @description
@@ -11,11 +7,11 @@ import { AbstractArray } from "../abstract/Array.js";
11
7
  * any types
12
8
  */
13
9
  export class VecAny extends AbstractArray {
14
- /**
15
- * @description Returns the base runtime type name for this instance
16
- */
17
- toRawType() {
18
- // FIXME This is basically an any type, cannot instantiate via createType
19
- return 'Vec<Codec>';
20
- }
10
+ /**
11
+ * @description Returns the base runtime type name for this instance
12
+ */
13
+ toRawType() {
14
+ // FIXME This is basically an any type, cannot instantiate via createType
15
+ return 'Vec<Codec>';
16
+ }
21
17
  }
@@ -1,6 +1,6 @@
1
1
  import type { HexString } from '@polkadot/util/types';
2
- import type { Codec, CodecClass, Inspect, Registry } from '../types';
3
- import { AbstractArray } from '../abstract/Array';
2
+ import type { Codec, CodecClass, Inspect, Registry } from '../types/index.js';
3
+ import { AbstractArray } from '../abstract/Array.js';
4
4
  interface Options<T> {
5
5
  definition?: CodecClass<T>;
6
6
  setDefinition?: (d: CodecClass<T>) => CodecClass<T>;