@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/VecFixed.js CHANGED
@@ -1,81 +1,73 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
1
+ var _VecFixed_Type;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
4
3
  import { isU8a, u8aConcatStrict } from '@polkadot/util';
5
- import { AbstractArray } from "../abstract/Array.js";
6
- import { decodeU8aVec, typeToConstructor } from "../utils/index.js";
7
- import { decodeVec } from "./Vec.js";
4
+ import { AbstractArray } from '../abstract/Array.js';
5
+ import { decodeU8aVec, typeToConstructor } from '../utils/index.js';
6
+ import { decodeVec } from './Vec.js';
8
7
  function noopSetDefinition(d) {
9
- return d;
8
+ return d;
10
9
  }
11
-
12
10
  /**
13
11
  * @name VecFixed
14
12
  * @description
15
13
  * This manages codec arrays of a fixed length
16
14
  */
17
15
  export class VecFixed extends AbstractArray {
18
- #Type;
19
- constructor(registry, Type, length, value = [], {
20
- definition,
21
- setDefinition = noopSetDefinition
22
- } = {}) {
23
- super(registry, length);
24
- this.#Type = definition || setDefinition(typeToConstructor(registry, Type));
25
- this.initialU8aLength = (isU8a(value) ? decodeU8aVec(registry, this, value, 0, this.#Type) : decodeVec(registry, this, value, 0, this.#Type))[1];
26
- }
27
- static with(Type, length) {
28
- let definition;
29
-
30
- // eslint-disable-next-line no-return-assign
31
- const setDefinition = d => definition = d;
32
- return class extends VecFixed {
33
- constructor(registry, value) {
34
- super(registry, Type, length, value, {
35
- definition,
36
- setDefinition
37
- });
38
- }
39
- };
40
- }
41
-
42
- /**
43
- * @description The type for the items
44
- */
45
- get Type() {
46
- return new this.#Type(this.registry).toRawType();
47
- }
48
-
49
- /**
50
- * @description The length of the value when encoded as a Uint8Array
51
- */
52
- get encodedLength() {
53
- let total = 0;
54
- for (let i = 0; i < this.length; i++) {
55
- total += this[i].encodedLength;
16
+ constructor(registry, Type, length, value = [], { definition, setDefinition = noopSetDefinition } = {}) {
17
+ super(registry, length);
18
+ _VecFixed_Type.set(this, void 0);
19
+ __classPrivateFieldSet(this, _VecFixed_Type, definition || setDefinition(typeToConstructor(registry, Type)), "f");
20
+ this.initialU8aLength = (isU8a(value)
21
+ ? decodeU8aVec(registry, this, value, 0, __classPrivateFieldGet(this, _VecFixed_Type, "f"))
22
+ : decodeVec(registry, this, value, 0, __classPrivateFieldGet(this, _VecFixed_Type, "f")))[1];
56
23
  }
57
- return total;
58
- }
59
-
60
- /**
61
- * @description Returns a breakdown of the hex encoding for this Codec
62
- */
63
- inspect() {
64
- return {
65
- inner: this.inspectInner()
66
- };
67
- }
68
- toU8a() {
69
- // we override, we don't add the length prefix for ourselves, and at the same time we
70
- // ignore isBare on entries, since they should be properly encoded at all times
71
- const encoded = this.toU8aInner();
72
- return encoded.length ? u8aConcatStrict(encoded) : new Uint8Array([]);
73
- }
74
-
75
- /**
76
- * @description Returns the base runtime type name for this instance
77
- */
78
- toRawType() {
79
- return `[${this.Type};${this.length}]`;
80
- }
81
- }
24
+ static with(Type, length) {
25
+ let definition;
26
+ // eslint-disable-next-line no-return-assign
27
+ const setDefinition = (d) => (definition = d);
28
+ return class extends VecFixed {
29
+ constructor(registry, value) {
30
+ super(registry, Type, length, value, { definition, setDefinition });
31
+ }
32
+ };
33
+ }
34
+ /**
35
+ * @description The type for the items
36
+ */
37
+ get Type() {
38
+ return new (__classPrivateFieldGet(this, _VecFixed_Type, "f"))(this.registry).toRawType();
39
+ }
40
+ /**
41
+ * @description The length of the value when encoded as a Uint8Array
42
+ */
43
+ get encodedLength() {
44
+ let total = 0;
45
+ for (let i = 0; i < this.length; i++) {
46
+ total += this[i].encodedLength;
47
+ }
48
+ return total;
49
+ }
50
+ /**
51
+ * @description Returns a breakdown of the hex encoding for this Codec
52
+ */
53
+ inspect() {
54
+ return {
55
+ inner: this.inspectInner()
56
+ };
57
+ }
58
+ toU8a() {
59
+ // we override, we don't add the length prefix for ourselves, and at the same time we
60
+ // ignore isBare on entries, since they should be properly encoded at all times
61
+ const encoded = this.toU8aInner();
62
+ return encoded.length
63
+ ? u8aConcatStrict(encoded)
64
+ : new Uint8Array([]);
65
+ }
66
+ /**
67
+ * @description Returns the base runtime type name for this instance
68
+ */
69
+ toRawType() {
70
+ return `[${this.Type};${this.length}]`;
71
+ }
72
+ }
73
+ _VecFixed_Type = new WeakMap();
package/base/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- export { Compact } from './Compact';
2
- export { DoNotConstruct } from './DoNotConstruct';
3
- export { Enum } from './Enum';
4
- export { Int } from './Int';
5
- export { Null } from './Null';
6
- export { Option } from './Option';
7
- export { Result } from './Result';
8
- export { Tuple } from './Tuple';
9
- export { UInt } from './UInt';
10
- export { Vec } from './Vec';
11
- export { VecAny } from './VecAny';
12
- export { VecFixed } from './VecFixed';
1
+ export { Compact } from './Compact.js';
2
+ export { DoNotConstruct } from './DoNotConstruct.js';
3
+ export { Enum } from './Enum.js';
4
+ export { Int } from './Int.js';
5
+ export { Null } from './Null.js';
6
+ export { Option } from './Option.js';
7
+ export { Result } from './Result.js';
8
+ export { Tuple } from './Tuple.js';
9
+ export { UInt } from './UInt.js';
10
+ export { Vec } from './Vec.js';
11
+ export { VecAny } from './VecAny.js';
12
+ export { VecFixed } from './VecFixed.js';
package/base/index.js CHANGED
@@ -1,15 +1,12 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- export { Compact } from "./Compact.js";
5
- export { DoNotConstruct } from "./DoNotConstruct.js";
6
- export { Enum } from "./Enum.js";
7
- export { Int } from "./Int.js";
8
- export { Null } from "./Null.js";
9
- export { Option } from "./Option.js";
10
- export { Result } from "./Result.js";
11
- export { Tuple } from "./Tuple.js";
12
- export { UInt } from "./UInt.js";
13
- export { Vec } from "./Vec.js";
14
- export { VecAny } from "./VecAny.js";
15
- export { VecFixed } from "./VecFixed.js";
1
+ export { Compact } from './Compact.js';
2
+ export { DoNotConstruct } from './DoNotConstruct.js';
3
+ export { Enum } from './Enum.js';
4
+ export { Int } from './Int.js';
5
+ export { Null } from './Null.js';
6
+ export { Option } from './Option.js';
7
+ export { Result } from './Result.js';
8
+ export { Tuple } from './Tuple.js';
9
+ export { UInt } from './UInt.js';
10
+ export { Vec } from './Vec.js';
11
+ export { VecAny } from './VecAny.js';
12
+ export { VecFixed } from './VecFixed.js';
package/bundle.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { packageInfo } from './packageInfo';
2
- export * from './abstract';
3
- export * from './base';
4
- export * from './extended';
5
- export * from './native';
6
- export * from './primitive';
7
- export * from './utils';
1
+ export { packageInfo } from './packageInfo.js';
2
+ export * from './abstract/index.js';
3
+ export * from './base/index.js';
4
+ export * from './extended/index.js';
5
+ export * from './native/index.js';
6
+ export * from './primitive/index.js';
7
+ export * from './utils/index.js';
package/bundle.js CHANGED
@@ -1,10 +1,7 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- export { packageInfo } from "./packageInfo.js";
5
- export * from "./abstract/index.js";
6
- export * from "./base/index.js";
7
- export * from "./extended/index.js";
8
- export * from "./native/index.js";
9
- export * from "./primitive/index.js";
10
- export * from "./utils/index.js";
1
+ export { packageInfo } from './packageInfo.js';
2
+ export * from './abstract/index.js';
3
+ export * from './base/index.js';
4
+ export * from './extended/index.js';
5
+ export * from './native/index.js';
6
+ export * from './primitive/index.js';
7
+ export * from './utils/index.js';
@@ -1,14 +1,8 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.AbstractArray = void 0;
7
- var _util = require("@polkadot/util");
8
- var _compareArray = require("../utils/compareArray");
9
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
10
- // SPDX-License-Identifier: Apache-2.0
11
-
4
+ const util_1 = require("@polkadot/util");
5
+ const compareArray_js_1 = require("../utils/compareArray.js");
12
6
  /**
13
7
  * @name AbstractArray
14
8
  * @description
@@ -17,155 +11,140 @@ var _compareArray = require("../utils/compareArray");
17
11
  * @noInheritDoc
18
12
  */
19
13
  class AbstractArray extends Array {
20
- /**
21
- * @description This ensures that operators such as clice, filter, map, etc. return
22
- * new Array instances (without this we need to apply overrides)
23
- */
24
- static get [Symbol.species]() {
25
- return Array;
26
- }
27
- constructor(registry, length) {
28
- super(length);
29
- this.registry = registry;
30
- }
31
-
32
- /**
33
- * @description The length of the value when encoded as a Uint8Array
34
- */
35
- get encodedLength() {
36
- // We need to loop through all entries since they may have a variable length themselves,
37
- // e.g. when a Vec or Compact is contained withing, it has a variable length based on data
38
- let total = (0, _util.compactToU8a)(this.length).length;
39
- for (let i = 0; i < this.length; i++) {
40
- total += this[i].encodedLength;
41
- }
42
- return total;
43
- }
44
-
45
- /**
46
- * @description returns a hash of the contents
47
- */
48
- get hash() {
49
- return this.registry.hash(this.toU8a());
50
- }
51
-
52
- /**
53
- * @description Checks if the value is an empty value
54
- */
55
- get isEmpty() {
56
- return this.length === 0;
57
- }
58
-
59
- /**
60
- * @description The length of the value
61
- */
62
- get length() {
63
- // only included here since we ignore inherited docs
64
- return super.length;
65
- }
66
-
67
- /**
68
- * @description Compares the value of the input to see if there is a match
69
- */
70
- eq(other) {
71
- return (0, _compareArray.compareArray)(this, other);
72
- }
73
-
74
- /**
75
- * @description Returns a breakdown of the hex encoding for this Codec
76
- */
77
- inspect() {
78
- return {
79
- inner: this.inspectInner(),
80
- outer: [(0, _util.compactToU8a)(this.length)]
81
- };
82
- }
83
- inspectInner() {
84
- const inner = new Array(this.length);
85
- for (let i = 0; i < this.length; i++) {
86
- inner[i] = this[i].inspect();
87
- }
88
- return inner;
89
- }
90
-
91
- /**
92
- * @description Converts the Object to an standard JavaScript Array
93
- */
94
- toArray() {
95
- return Array.from(this);
96
- }
97
-
98
- /**
99
- * @description Returns a hex string representation of the value
100
- */
101
- toHex() {
102
- return (0, _util.u8aToHex)(this.toU8a());
103
- }
104
-
105
- /**
106
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
107
- */
108
- toHuman(isExtended) {
109
- const result = new Array(this.length);
110
- for (let i = 0; i < this.length; i++) {
111
- result[i] = this[i] && this[i].toHuman(isExtended);
112
- }
113
- return result;
114
- }
115
-
116
- /**
117
- * @description Converts the Object to JSON, typically used for RPC transfers
118
- */
119
- toJSON() {
120
- const result = new Array(this.length);
121
- for (let i = 0; i < this.length; i++) {
122
- // We actually log inside the U8a decoding and use JSON.stringify(...), which
123
- // means that the Vec may be partially populated (same applies to toHuman, same check)
124
- result[i] = this[i] && this[i].toJSON();
125
- }
126
- return result;
127
- }
128
-
129
- /**
130
- * @description Converts the value in a best-fit primitive form
131
- */
132
- toPrimitive() {
133
- const result = new Array(this.length);
134
- for (let i = 0; i < this.length; i++) {
135
- result[i] = this[i] && this[i].toPrimitive();
136
- }
137
- return result;
138
- }
139
-
140
- /**
141
- * @description Returns the base runtime type name for this instance
142
- */
143
-
144
- /**
145
- * @description Returns the string representation of the value
146
- */
147
- toString() {
148
- const result = new Array(this.length);
149
- for (let i = 0; i < this.length; i++) {
150
- result[i] = this[i].toString();
151
- }
152
- return `[${result.join(', ')}]`;
153
- }
154
-
155
- /**
156
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
157
- * @param isBare true when the value has none of the type-specific prefixes (internal)
158
- */
159
- toU8a(isBare) {
160
- const encoded = this.toU8aInner();
161
- return isBare ? (0, _util.u8aConcatStrict)(encoded) : (0, _util.u8aConcatStrict)([(0, _util.compactToU8a)(this.length), ...encoded]);
162
- }
163
- toU8aInner(isBare) {
164
- const encoded = new Array(this.length);
165
- for (let i = 0; i < this.length; i++) {
166
- encoded[i] = this[i].toU8a(isBare);
167
- }
168
- return encoded;
169
- }
14
+ /**
15
+ * @description This ensures that operators such as clice, filter, map, etc. return
16
+ * new Array instances (without this we need to apply overrides)
17
+ */
18
+ static get [Symbol.species]() {
19
+ return Array;
20
+ }
21
+ constructor(registry, length) {
22
+ super(length);
23
+ this.registry = registry;
24
+ }
25
+ /**
26
+ * @description The length of the value when encoded as a Uint8Array
27
+ */
28
+ get encodedLength() {
29
+ // We need to loop through all entries since they may have a variable length themselves,
30
+ // e.g. when a Vec or Compact is contained withing, it has a variable length based on data
31
+ let total = (0, util_1.compactToU8a)(this.length).length;
32
+ for (let i = 0; i < this.length; i++) {
33
+ total += this[i].encodedLength;
34
+ }
35
+ return total;
36
+ }
37
+ /**
38
+ * @description returns a hash of the contents
39
+ */
40
+ get hash() {
41
+ return this.registry.hash(this.toU8a());
42
+ }
43
+ /**
44
+ * @description Checks if the value is an empty value
45
+ */
46
+ get isEmpty() {
47
+ return this.length === 0;
48
+ }
49
+ /**
50
+ * @description The length of the value
51
+ */
52
+ get length() {
53
+ // only included here since we ignore inherited docs
54
+ return super.length;
55
+ }
56
+ /**
57
+ * @description Compares the value of the input to see if there is a match
58
+ */
59
+ eq(other) {
60
+ return (0, compareArray_js_1.compareArray)(this, other);
61
+ }
62
+ /**
63
+ * @description Returns a breakdown of the hex encoding for this Codec
64
+ */
65
+ inspect() {
66
+ return {
67
+ inner: this.inspectInner(),
68
+ outer: [(0, util_1.compactToU8a)(this.length)]
69
+ };
70
+ }
71
+ inspectInner() {
72
+ const inner = new Array(this.length);
73
+ for (let i = 0; i < this.length; i++) {
74
+ inner[i] = this[i].inspect();
75
+ }
76
+ return inner;
77
+ }
78
+ /**
79
+ * @description Converts the Object to an standard JavaScript Array
80
+ */
81
+ toArray() {
82
+ return Array.from(this);
83
+ }
84
+ /**
85
+ * @description Returns a hex string representation of the value
86
+ */
87
+ toHex() {
88
+ return (0, util_1.u8aToHex)(this.toU8a());
89
+ }
90
+ /**
91
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
92
+ */
93
+ toHuman(isExtended) {
94
+ const result = new Array(this.length);
95
+ for (let i = 0; i < this.length; i++) {
96
+ result[i] = this[i] && this[i].toHuman(isExtended);
97
+ }
98
+ return result;
99
+ }
100
+ /**
101
+ * @description Converts the Object to JSON, typically used for RPC transfers
102
+ */
103
+ toJSON() {
104
+ const result = new Array(this.length);
105
+ for (let i = 0; i < this.length; i++) {
106
+ // We actually log inside the U8a decoding and use JSON.stringify(...), which
107
+ // means that the Vec may be partially populated (same applies to toHuman, same check)
108
+ result[i] = this[i] && this[i].toJSON();
109
+ }
110
+ return result;
111
+ }
112
+ /**
113
+ * @description Converts the value in a best-fit primitive form
114
+ */
115
+ toPrimitive() {
116
+ const result = new Array(this.length);
117
+ for (let i = 0; i < this.length; i++) {
118
+ result[i] = this[i] && this[i].toPrimitive();
119
+ }
120
+ return result;
121
+ }
122
+ /**
123
+ * @description Returns the string representation of the value
124
+ */
125
+ toString() {
126
+ const result = new Array(this.length);
127
+ for (let i = 0; i < this.length; i++) {
128
+ result[i] = this[i].toString();
129
+ }
130
+ return `[${result.join(', ')}]`;
131
+ }
132
+ /**
133
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
134
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
135
+ */
136
+ toU8a(isBare) {
137
+ const encoded = this.toU8aInner();
138
+ return isBare
139
+ ? (0, util_1.u8aConcatStrict)(encoded)
140
+ : (0, util_1.u8aConcatStrict)([(0, util_1.compactToU8a)(this.length), ...encoded]);
141
+ }
142
+ toU8aInner(isBare) {
143
+ const encoded = new Array(this.length);
144
+ for (let i = 0; i < this.length; i++) {
145
+ encoded[i] = this[i].toU8a(isBare);
146
+ }
147
+ return encoded;
148
+ }
170
149
  }
171
150
  exports.AbstractArray = AbstractArray;