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