@polkadot/types-codec 9.14.1 → 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.
Files changed (157) hide show
  1. package/abstract/Array.js +140 -155
  2. package/abstract/Base.js +95 -112
  3. package/abstract/Int.js +212 -220
  4. package/abstract/Object.js +34 -45
  5. package/abstract/index.js +3 -6
  6. package/base/Compact.js +149 -165
  7. package/base/DoNotConstruct.js +61 -64
  8. package/base/Enum.js +345 -382
  9. package/base/Int.js +14 -18
  10. package/base/Null.js +71 -82
  11. package/base/Option.js +217 -226
  12. package/base/Result.js +54 -67
  13. package/base/Tuple.js +96 -101
  14. package/base/UInt.js +11 -15
  15. package/base/Vec.js +84 -89
  16. package/base/VecAny.js +8 -12
  17. package/base/VecFixed.js +59 -70
  18. package/base/index.js +12 -15
  19. package/bundle.js +7 -10
  20. package/cjs/abstract/Array.js +138 -159
  21. package/cjs/abstract/Base.js +96 -117
  22. package/cjs/abstract/Int.js +215 -238
  23. package/cjs/abstract/Object.js +30 -49
  24. package/cjs/abstract/index.js +8 -25
  25. package/cjs/base/Compact.js +151 -173
  26. package/cjs/base/DoNotConstruct.js +63 -70
  27. package/cjs/base/Enum.js +350 -396
  28. package/cjs/base/Int.js +16 -24
  29. package/cjs/base/Null.js +70 -86
  30. package/cjs/base/Option.js +220 -234
  31. package/cjs/base/Result.js +56 -71
  32. package/cjs/base/Tuple.js +103 -109
  33. package/cjs/base/UInt.js +13 -19
  34. package/cjs/base/Vec.js +94 -101
  35. package/cjs/base/VecAny.js +10 -16
  36. package/cjs/base/VecFixed.js +66 -79
  37. package/cjs/base/index.js +26 -88
  38. package/cjs/bundle.js +11 -86
  39. package/cjs/detectOther.js +2 -10
  40. package/cjs/detectPackage.js +6 -11
  41. package/cjs/extended/BTreeMap.js +10 -16
  42. package/cjs/extended/BTreeSet.js +162 -178
  43. package/cjs/extended/BitVec.js +70 -77
  44. package/cjs/extended/Bytes.js +59 -62
  45. package/cjs/extended/HashMap.js +10 -16
  46. package/cjs/extended/Linkage.js +50 -60
  47. package/cjs/extended/Map.js +176 -181
  48. package/cjs/extended/OptionBool.js +65 -68
  49. package/cjs/extended/Range.js +37 -46
  50. package/cjs/extended/RangeInclusive.js +13 -21
  51. package/cjs/extended/Type.js +14 -22
  52. package/cjs/extended/U8aFixed.js +33 -43
  53. package/cjs/extended/WrapperKeepOpaque.js +99 -99
  54. package/cjs/extended/WrapperOpaque.js +19 -28
  55. package/cjs/extended/index.js +31 -108
  56. package/cjs/index.js +3 -15
  57. package/cjs/native/Bool.js +101 -116
  58. package/cjs/native/Date.js +125 -151
  59. package/cjs/native/Float.js +95 -114
  60. package/cjs/native/Json.js +102 -124
  61. package/cjs/native/Raw.js +128 -150
  62. package/cjs/native/Set.js +200 -220
  63. package/cjs/native/Struct.data.js +2 -9
  64. package/cjs/native/Struct.js +238 -251
  65. package/cjs/native/Text.js +137 -149
  66. package/cjs/native/index.js +21 -78
  67. package/cjs/packageInfo.js +2 -16
  68. package/cjs/primitive/F32.js +8 -11
  69. package/cjs/primitive/F64.js +8 -11
  70. package/cjs/primitive/I128.js +8 -11
  71. package/cjs/primitive/I16.js +8 -11
  72. package/cjs/primitive/I256.js +8 -11
  73. package/cjs/primitive/I32.js +8 -11
  74. package/cjs/primitive/I64.js +8 -11
  75. package/cjs/primitive/I8.js +8 -11
  76. package/cjs/primitive/U128.js +8 -11
  77. package/cjs/primitive/U16.js +8 -11
  78. package/cjs/primitive/U256.js +8 -11
  79. package/cjs/primitive/U32.js +8 -11
  80. package/cjs/primitive/U64.js +8 -11
  81. package/cjs/primitive/U8.js +8 -11
  82. package/cjs/primitive/USize.js +7 -13
  83. package/cjs/primitive/index.js +47 -199
  84. package/cjs/types/codec.js +2 -1
  85. package/cjs/types/helpers.js +2 -1
  86. package/cjs/types/index.js +6 -48
  87. package/cjs/types/interfaces.js +2 -1
  88. package/cjs/types/registry.js +2 -1
  89. package/cjs/utils/compareArray.js +12 -17
  90. package/cjs/utils/compareMap.js +23 -26
  91. package/cjs/utils/compareSet.js +17 -23
  92. package/cjs/utils/decodeU8a.js +63 -74
  93. package/cjs/utils/index.js +24 -91
  94. package/cjs/utils/mapToTypeMap.js +13 -18
  95. package/cjs/utils/sanitize.js +198 -204
  96. package/cjs/utils/sortValues.js +39 -49
  97. package/cjs/utils/typeToConstructor.js +8 -11
  98. package/cjs/utils/typesToMap.js +10 -16
  99. package/cjs/utils/util.js +6 -11
  100. package/detectOther.js +0 -5
  101. package/detectPackage.js +2 -7
  102. package/extended/BTreeMap.js +8 -11
  103. package/extended/BTreeSet.js +159 -171
  104. package/extended/BitVec.js +63 -70
  105. package/extended/Bytes.js +56 -57
  106. package/extended/HashMap.js +8 -11
  107. package/extended/Linkage.js +46 -51
  108. package/extended/Map.js +173 -173
  109. package/extended/OptionBool.js +62 -62
  110. package/extended/Range.js +31 -39
  111. package/extended/RangeInclusive.js +11 -16
  112. package/extended/Type.js +12 -17
  113. package/extended/U8aFixed.js +30 -36
  114. package/extended/WrapperKeepOpaque.js +92 -91
  115. package/extended/WrapperOpaque.js +17 -23
  116. package/extended/index.js +14 -17
  117. package/index.js +2 -5
  118. package/native/Bool.js +102 -111
  119. package/native/Date.js +126 -144
  120. package/native/Float.js +94 -107
  121. package/native/Json.js +104 -114
  122. package/native/Raw.js +130 -146
  123. package/native/Set.js +194 -209
  124. package/native/Struct.data.js +0 -3
  125. package/native/Struct.js +233 -241
  126. package/native/Text.js +135 -143
  127. package/native/index.js +8 -11
  128. package/package.json +8 -5
  129. package/packageInfo.js +1 -11
  130. package/primitive/F32.js +3 -7
  131. package/primitive/F64.js +3 -7
  132. package/primitive/I128.js +3 -7
  133. package/primitive/I16.js +3 -7
  134. package/primitive/I256.js +3 -7
  135. package/primitive/I32.js +3 -7
  136. package/primitive/I64.js +3 -7
  137. package/primitive/I8.js +3 -7
  138. package/primitive/U128.js +3 -7
  139. package/primitive/U16.js +3 -7
  140. package/primitive/U256.js +3 -7
  141. package/primitive/U32.js +3 -7
  142. package/primitive/U64.js +3 -7
  143. package/primitive/U8.js +3 -7
  144. package/primitive/USize.js +5 -9
  145. package/primitive/index.js +15 -18
  146. package/types/index.js +4 -7
  147. package/utils/compareArray.js +7 -11
  148. package/utils/compareMap.js +18 -19
  149. package/utils/compareSet.js +12 -16
  150. package/utils/decodeU8a.js +54 -61
  151. package/utils/index.js +9 -12
  152. package/utils/mapToTypeMap.js +9 -13
  153. package/utils/sanitize.js +182 -185
  154. package/utils/sortValues.js +32 -36
  155. package/utils/typeToConstructor.js +3 -4
  156. package/utils/typesToMap.js +5 -8
  157. package/utils/util.js +1 -4
package/base/Compact.js CHANGED
@@ -1,24 +1,26 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import { compactFromU8a, compactFromU8aLim, compactToU8a, isU8a } from '@polkadot/util';
5
- import { typeToConstructor } from "../utils/index.js";
2
+ import { typeToConstructor } from '../utils/index.js';
6
3
  function noopSetDefinition(d) {
7
- return d;
4
+ return d;
8
5
  }
9
6
  function decodeCompact(registry, Type, value) {
10
- if (isU8a(value)) {
11
- const [decodedLength, bn] = (value[0] & 0b11) < 0b11 ? compactFromU8aLim(value) : compactFromU8a(value);
12
- return [new Type(registry, bn), decodedLength];
13
- } else if (value instanceof Compact) {
14
- const raw = value.unwrap();
15
- return raw instanceof Type ? [raw, 0] : [new Type(registry, raw), 0];
16
- } else if (value instanceof Type) {
17
- return [value, 0];
18
- }
19
- return [new Type(registry, value), 0];
7
+ if (isU8a(value)) {
8
+ const [decodedLength, bn] = (value[0] & 0b11) < 0b11
9
+ ? compactFromU8aLim(value)
10
+ : compactFromU8a(value);
11
+ return [new Type(registry, bn), decodedLength];
12
+ }
13
+ else if (value instanceof Compact) {
14
+ const raw = value.unwrap();
15
+ return raw instanceof Type
16
+ ? [raw, 0]
17
+ : [new Type(registry, raw), 0];
18
+ }
19
+ else if (value instanceof Type) {
20
+ return [value, 0];
21
+ }
22
+ return [new Type(registry, value), 0];
20
23
  }
21
-
22
24
  /**
23
25
  * @name Compact
24
26
  * @description
@@ -28,153 +30,135 @@ function decodeCompact(registry, Type, value) {
28
30
  * a number and making the compact representation thereof
29
31
  */
30
32
  export class Compact {
31
- #Type;
32
- #raw;
33
- constructor(registry, Type, value = 0, {
34
- definition,
35
- setDefinition = noopSetDefinition
36
- } = {}) {
37
- this.registry = registry;
38
- this.#Type = definition || setDefinition(typeToConstructor(registry, Type));
39
- const [raw, decodedLength] = decodeCompact(registry, this.#Type, value);
40
- this.initialU8aLength = decodedLength;
41
- this.#raw = raw;
42
- }
43
- static with(Type) {
44
- let definition;
45
-
46
- // eslint-disable-next-line no-return-assign
47
- const setDefinition = d => definition = d;
48
- return class extends Compact {
49
- constructor(registry, value) {
50
- super(registry, Type, value, {
51
- definition,
52
- setDefinition
53
- });
54
- }
55
- };
56
- }
57
-
58
- /**
59
- * @description The length of the value when encoded as a Uint8Array
60
- */
61
- get encodedLength() {
62
- return this.toU8a().length;
63
- }
64
-
65
- /**
66
- * @description returns a hash of the contents
67
- */
68
- get hash() {
69
- return this.registry.hash(this.toU8a());
70
- }
71
-
72
- /**
73
- * @description Checks if the value is an empty value
74
- */
75
- get isEmpty() {
76
- return this.#raw.isEmpty;
77
- }
78
-
79
- /**
80
- * @description Returns the number of bits in the value
81
- */
82
- bitLength() {
83
- return this.#raw.bitLength();
84
- }
85
-
86
- /**
87
- * @description Compares the value of the input to see if there is a match
88
- */
89
- eq(other) {
90
- return this.#raw.eq(other instanceof Compact ? other.#raw : other);
91
- }
92
-
93
- /**
94
- * @description Returns a breakdown of the hex encoding for this Codec
95
- */
96
- inspect() {
97
- return {
98
- outer: [this.toU8a()]
99
- };
100
- }
101
-
102
- /**
103
- * @description Returns a BigInt representation of the number
104
- */
105
- toBigInt() {
106
- return this.#raw.toBigInt();
107
- }
108
-
109
- /**
110
- * @description Returns the BN representation of the number
111
- */
112
- toBn() {
113
- return this.#raw.toBn();
114
- }
115
-
116
- /**
117
- * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
118
- */
119
- toHex(isLe) {
120
- return this.#raw.toHex(isLe);
121
- }
122
-
123
- /**
124
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
125
- */
126
- toHuman(isExtended) {
127
- return this.#raw.toHuman(isExtended);
128
- }
129
-
130
- /**
131
- * @description Converts the Object to JSON, typically used for RPC transfers
132
- */
133
- toJSON() {
134
- return this.#raw.toJSON();
135
- }
136
-
137
- /**
138
- * @description Returns the number representation for the value
139
- */
140
- toNumber() {
141
- return this.#raw.toNumber();
142
- }
143
-
144
- /**
145
- * @description Converts the value in a best-fit primitive form
146
- */
147
- toPrimitive() {
148
- return this.#raw.toPrimitive();
149
- }
150
-
151
- /**
152
- * @description Returns the base runtime type name for this instance
153
- */
154
- toRawType() {
155
- return `Compact<${this.registry.getClassName(this.#Type) || this.#raw.toRawType()}>`;
156
- }
157
-
158
- /**
159
- * @description Returns the string representation of the value
160
- */
161
- toString() {
162
- return this.#raw.toString();
163
- }
164
-
165
- /**
166
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
167
- * @param isBare true when the value has none of the type-specific prefixes (internal)
168
- */
169
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
170
- toU8a(isBare) {
171
- return compactToU8a(this.#raw.toBn());
172
- }
173
-
174
- /**
175
- * @description Returns the embedded [[UInt]] or [[Moment]] value
176
- */
177
- unwrap() {
178
- return this.#raw;
179
- }
33
+ registry;
34
+ createdAtHash;
35
+ initialU8aLength;
36
+ isStorageFallback;
37
+ #Type;
38
+ #raw;
39
+ constructor(registry, Type, value = 0, { definition, setDefinition = noopSetDefinition } = {}) {
40
+ this.registry = registry;
41
+ this.#Type = definition || setDefinition(typeToConstructor(registry, Type));
42
+ const [raw, decodedLength] = decodeCompact(registry, this.#Type, value);
43
+ this.initialU8aLength = decodedLength;
44
+ this.#raw = raw;
45
+ }
46
+ static with(Type) {
47
+ let definition;
48
+ // eslint-disable-next-line no-return-assign
49
+ const setDefinition = (d) => (definition = d);
50
+ return class extends Compact {
51
+ constructor(registry, value) {
52
+ super(registry, Type, value, { definition, setDefinition });
53
+ }
54
+ };
55
+ }
56
+ /**
57
+ * @description The length of the value when encoded as a Uint8Array
58
+ */
59
+ get encodedLength() {
60
+ return this.toU8a().length;
61
+ }
62
+ /**
63
+ * @description returns a hash of the contents
64
+ */
65
+ get hash() {
66
+ return this.registry.hash(this.toU8a());
67
+ }
68
+ /**
69
+ * @description Checks if the value is an empty value
70
+ */
71
+ get isEmpty() {
72
+ return this.#raw.isEmpty;
73
+ }
74
+ /**
75
+ * @description Returns the number of bits in the value
76
+ */
77
+ bitLength() {
78
+ return this.#raw.bitLength();
79
+ }
80
+ /**
81
+ * @description Compares the value of the input to see if there is a match
82
+ */
83
+ eq(other) {
84
+ return this.#raw.eq(other instanceof Compact
85
+ ? other.#raw
86
+ : other);
87
+ }
88
+ /**
89
+ * @description Returns a breakdown of the hex encoding for this Codec
90
+ */
91
+ inspect() {
92
+ return {
93
+ outer: [this.toU8a()]
94
+ };
95
+ }
96
+ /**
97
+ * @description Returns a BigInt representation of the number
98
+ */
99
+ toBigInt() {
100
+ return this.#raw.toBigInt();
101
+ }
102
+ /**
103
+ * @description Returns the BN representation of the number
104
+ */
105
+ toBn() {
106
+ return this.#raw.toBn();
107
+ }
108
+ /**
109
+ * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation
110
+ */
111
+ toHex(isLe) {
112
+ return this.#raw.toHex(isLe);
113
+ }
114
+ /**
115
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
116
+ */
117
+ toHuman(isExtended) {
118
+ return this.#raw.toHuman(isExtended);
119
+ }
120
+ /**
121
+ * @description Converts the Object to JSON, typically used for RPC transfers
122
+ */
123
+ toJSON() {
124
+ return this.#raw.toJSON();
125
+ }
126
+ /**
127
+ * @description Returns the number representation for the value
128
+ */
129
+ toNumber() {
130
+ return this.#raw.toNumber();
131
+ }
132
+ /**
133
+ * @description Converts the value in a best-fit primitive form
134
+ */
135
+ toPrimitive() {
136
+ return this.#raw.toPrimitive();
137
+ }
138
+ /**
139
+ * @description Returns the base runtime type name for this instance
140
+ */
141
+ toRawType() {
142
+ return `Compact<${this.registry.getClassName(this.#Type) || this.#raw.toRawType()}>`;
143
+ }
144
+ /**
145
+ * @description Returns the string representation of the value
146
+ */
147
+ toString() {
148
+ return this.#raw.toString();
149
+ }
150
+ /**
151
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
152
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
153
+ */
154
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
155
+ toU8a(isBare) {
156
+ return compactToU8a(this.#raw.toBn());
157
+ }
158
+ /**
159
+ * @description Returns the embedded [[UInt]] or [[Moment]] value
160
+ */
161
+ unwrap() {
162
+ return this.#raw;
163
+ }
180
164
  }
@@ -1,71 +1,68 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  /**
5
2
  * @name DoNotConstruct
6
3
  * @description
7
4
  * An unknown type that fails on construction with the type info
8
5
  */
9
6
  export class DoNotConstruct {
10
- #neverError;
11
- constructor(registry, typeName = 'DoNotConstruct') {
12
- this.registry = registry;
13
- this.#neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`);
14
- throw this.#neverError;
15
- }
16
- static with(typeName) {
17
- return class extends DoNotConstruct {
18
- constructor(registry) {
19
- super(registry, typeName);
20
- }
21
- };
22
- }
23
-
24
- /**
25
- * @description The length of the value when encoded as a Uint8Array
26
- */
27
- get encodedLength() {
28
- throw this.#neverError;
29
- }
30
-
31
- /**
32
- * @description returns a hash of the contents
33
- */
34
- get hash() {
35
- throw this.#neverError;
36
- }
37
-
38
- /**
39
- * @description Checks if the value is an empty value (always true)
40
- */
41
- get isEmpty() {
42
- throw this.#neverError;
43
- }
44
- eq() {
45
- throw this.#neverError;
46
- }
47
- inspect() {
48
- throw this.#neverError;
49
- }
50
- toHex() {
51
- throw this.#neverError;
52
- }
53
- toHuman() {
54
- throw this.#neverError;
55
- }
56
- toJSON() {
57
- throw this.#neverError;
58
- }
59
- toPrimitive() {
60
- throw this.#neverError;
61
- }
62
- toRawType() {
63
- throw this.#neverError;
64
- }
65
- toString() {
66
- throw this.#neverError;
67
- }
68
- toU8a() {
69
- throw this.#neverError;
70
- }
7
+ registry;
8
+ createdAtHash;
9
+ isStorageFallback;
10
+ #neverError;
11
+ constructor(registry, typeName = 'DoNotConstruct') {
12
+ this.registry = registry;
13
+ this.#neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`);
14
+ throw this.#neverError;
15
+ }
16
+ static with(typeName) {
17
+ return class extends DoNotConstruct {
18
+ constructor(registry) {
19
+ super(registry, typeName);
20
+ }
21
+ };
22
+ }
23
+ /**
24
+ * @description The length of the value when encoded as a Uint8Array
25
+ */
26
+ get encodedLength() {
27
+ throw this.#neverError;
28
+ }
29
+ /**
30
+ * @description returns a hash of the contents
31
+ */
32
+ get hash() {
33
+ throw this.#neverError;
34
+ }
35
+ /**
36
+ * @description Checks if the value is an empty value (always true)
37
+ */
38
+ get isEmpty() {
39
+ throw this.#neverError;
40
+ }
41
+ eq() {
42
+ throw this.#neverError;
43
+ }
44
+ inspect() {
45
+ throw this.#neverError;
46
+ }
47
+ toHex() {
48
+ throw this.#neverError;
49
+ }
50
+ toHuman() {
51
+ throw this.#neverError;
52
+ }
53
+ toJSON() {
54
+ throw this.#neverError;
55
+ }
56
+ toPrimitive() {
57
+ throw this.#neverError;
58
+ }
59
+ toRawType() {
60
+ throw this.#neverError;
61
+ }
62
+ toString() {
63
+ throw this.#neverError;
64
+ }
65
+ toU8a() {
66
+ throw this.#neverError;
67
+ }
71
68
  }