@polkadot/types-codec 9.14.2 → 10.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/native/Float.js CHANGED
@@ -1,6 +1,3 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import { floatToU8a, isHex, isU8a, u8aToFloat, u8aToHex, u8aToU8a } from '@polkadot/util';
5
2
  /**
6
3
  * @name Float
@@ -11,108 +8,98 @@ import { floatToU8a, isHex, isU8a, u8aToFloat, u8aToHex, u8aToU8a } from '@polka
11
8
  * in some eth_* RPCs
12
9
  */
13
10
  export class Float extends Number {
14
- #bitLength;
15
- constructor(registry, value, {
16
- bitLength = 32
17
- } = {}) {
18
- super(isU8a(value) || isHex(value) ? value.length === 0 ? 0 : u8aToFloat(u8aToU8a(value), {
19
- bitLength
20
- }) : value || 0);
21
- this.#bitLength = bitLength;
22
- this.encodedLength = bitLength / 8;
23
- this.initialU8aLength = this.encodedLength;
24
- this.registry = registry;
25
- }
26
- static with(bitLength) {
27
- return class extends Float {
28
- constructor(registry, value) {
29
- super(registry, value, {
30
- bitLength
31
- });
32
- }
33
- };
34
- }
35
-
36
- /**
37
- * @description returns a hash of the contents
38
- */
39
- get hash() {
40
- return this.registry.hash(this.toU8a());
41
- }
42
-
43
- /**
44
- * @description Returns true if the type wraps an empty/default all-0 value
45
- */
46
- get isEmpty() {
47
- return this.valueOf() === 0;
48
- }
49
-
50
- /**
51
- * @description Compares the value of the input to see if there is a match
52
- */
53
- eq(other) {
54
- return this.valueOf() === Number(other);
55
- }
56
-
57
- /**
58
- * @description Returns a breakdown of the hex encoding for this Codec
59
- */
60
- inspect() {
61
- return {
62
- outer: [this.toU8a()]
63
- };
64
- }
65
-
66
- /**
67
- * @description Returns a hex string representation of the value
68
- */
69
- toHex() {
70
- return u8aToHex(this.toU8a());
71
- }
72
-
73
- /**
74
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
75
- */
76
- toHuman() {
77
- return this.toString();
78
- }
79
-
80
- /**
81
- * @description Converts the Object to JSON, typically used for RPC transfers
82
- */
83
- toJSON() {
84
- // Not sure if this is actually a hex or a string value
85
- // (would need to check against RPCs to see the result here)
86
- return this.toHex();
87
- }
88
-
89
- /**
90
- * @description Returns the number representation (Same as valueOf)
91
- */
92
- toNumber() {
93
- return this.valueOf();
94
- }
95
-
96
- /**
97
- * @description Converts the value in a best-fit primitive form
98
- */
99
- toPrimitive() {
100
- return this.toNumber();
101
- }
102
-
103
- /**
104
- * @description Returns the base runtime type name for this instance
105
- */
106
- toRawType() {
107
- return `f${this.#bitLength}`;
108
- }
109
-
110
- /**
111
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
112
- */
113
- toU8a() {
114
- return floatToU8a(this, {
115
- bitLength: this.#bitLength
116
- });
117
- }
11
+ encodedLength;
12
+ registry;
13
+ createdAtHash;
14
+ initialU8aLength;
15
+ isStorageFallback;
16
+ #bitLength;
17
+ constructor(registry, value, { bitLength = 32 } = {}) {
18
+ super(isU8a(value) || isHex(value)
19
+ ? value.length === 0
20
+ ? 0
21
+ : u8aToFloat(u8aToU8a(value), { bitLength })
22
+ : (value || 0));
23
+ this.#bitLength = bitLength;
24
+ this.encodedLength = bitLength / 8;
25
+ this.initialU8aLength = this.encodedLength;
26
+ this.registry = registry;
27
+ }
28
+ static with(bitLength) {
29
+ return class extends Float {
30
+ constructor(registry, value) {
31
+ super(registry, value, { bitLength });
32
+ }
33
+ };
34
+ }
35
+ /**
36
+ * @description returns a hash of the contents
37
+ */
38
+ get hash() {
39
+ return this.registry.hash(this.toU8a());
40
+ }
41
+ /**
42
+ * @description Returns true if the type wraps an empty/default all-0 value
43
+ */
44
+ get isEmpty() {
45
+ return this.valueOf() === 0;
46
+ }
47
+ /**
48
+ * @description Compares the value of the input to see if there is a match
49
+ */
50
+ eq(other) {
51
+ return this.valueOf() === Number(other);
52
+ }
53
+ /**
54
+ * @description Returns a breakdown of the hex encoding for this Codec
55
+ */
56
+ inspect() {
57
+ return {
58
+ outer: [this.toU8a()]
59
+ };
60
+ }
61
+ /**
62
+ * @description Returns a hex string representation of the value
63
+ */
64
+ toHex() {
65
+ return u8aToHex(this.toU8a());
66
+ }
67
+ /**
68
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
69
+ */
70
+ toHuman() {
71
+ return this.toString();
72
+ }
73
+ /**
74
+ * @description Converts the Object to JSON, typically used for RPC transfers
75
+ */
76
+ toJSON() {
77
+ // Not sure if this is actually a hex or a string value
78
+ // (would need to check against RPCs to see the result here)
79
+ return this.toHex();
80
+ }
81
+ /**
82
+ * @description Returns the number representation (Same as valueOf)
83
+ */
84
+ toNumber() {
85
+ return this.valueOf();
86
+ }
87
+ /**
88
+ * @description Converts the value in a best-fit primitive form
89
+ */
90
+ toPrimitive() {
91
+ return this.toNumber();
92
+ }
93
+ /**
94
+ * @description Returns the base runtime type name for this instance
95
+ */
96
+ toRawType() {
97
+ return `f${this.#bitLength}`;
98
+ }
99
+ /**
100
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
101
+ */
102
+ toU8a() {
103
+ return floatToU8a(this, { bitLength: this.#bitLength });
104
+ }
118
105
  }
package/native/Json.js CHANGED
@@ -1,14 +1,9 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import { isFunction, objectProperties, stringify } from '@polkadot/util';
5
- import { compareMap } from "../utils/index.js";
6
-
2
+ import { compareMap } from '../utils/index.js';
7
3
  /** @internal */
8
4
  function decodeJson(value) {
9
- return Object.entries(value || {});
5
+ return Object.entries(value || {});
10
6
  }
11
-
12
7
  /**
13
8
  * @name Json
14
9
  * @description
@@ -18,111 +13,106 @@ function decodeJson(value) {
18
13
  * @noInheritDoc
19
14
  */
20
15
  export class Json extends Map {
21
- constructor(registry, value) {
22
- const decoded = decodeJson(value);
23
- super(decoded);
24
- this.registry = registry;
25
- objectProperties(this, decoded.map(([k]) => k), k => this.get(k));
26
- }
27
-
28
- /**
29
- * @description Always 0, never encodes as a Uint8Array
30
- */
31
- get encodedLength() {
32
- return 0;
33
- }
34
-
35
- /**
36
- * @description returns a hash of the contents
37
- */
38
- get hash() {
39
- return this.registry.hash(this.toU8a());
40
- }
41
-
42
- /**
43
- * @description Checks if the value is an empty value
44
- */
45
- get isEmpty() {
46
- return [...this.keys()].length === 0;
47
- }
48
-
49
- /**
50
- * @description Compares the value of the input to see if there is a match
51
- */
52
- eq(other) {
53
- return compareMap(this, other);
54
- }
55
-
56
- /**
57
- * @description Returns a typed value from the internal map
58
- */
59
- getT(key) {
60
- return this.get(key);
61
- }
62
-
63
- /**
64
- * @description Unimplemented, will throw
65
- */
66
- inspect() {
67
- throw new Error('Unimplemented');
68
- }
69
-
70
- /**
71
- * @description Unimplemented, will throw
72
- */
73
- toHex() {
74
- throw new Error('Unimplemented');
75
- }
76
-
77
- /**
78
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
79
- */
80
- toHuman() {
81
- return [...this.entries()].reduce((json, [key, value]) => {
82
- json[key] = isFunction(value.toHuman) ? value.toHuman() : value;
83
- return json;
84
- }, {});
85
- }
86
-
87
- /**
88
- * @description Converts the Object to JSON, typically used for RPC transfers
89
- */
90
- toJSON() {
91
- return [...this.entries()].reduce((json, [key, value]) => {
92
- json[key] = value;
93
- return json;
94
- }, {});
95
- }
96
-
97
- /**
98
- * @description Converts the value in a best-fit primitive form
99
- */
100
- toPrimitive() {
101
- return [...this.entries()].reduce((json, [key, value]) => {
102
- json[key] = isFunction(value.toPrimitive) ? value.toPrimitive() : value;
103
- return json;
104
- }, {});
105
- }
106
-
107
- /**
108
- * @description Returns the base runtime type name for this instance
109
- */
110
- toRawType() {
111
- return 'Json';
112
- }
113
-
114
- /**
115
- * @description Returns the string representation of the value
116
- */
117
- toString() {
118
- return stringify(this.toJSON());
119
- }
120
-
121
- /**
122
- * @description Unimplemented, will throw
123
- */
124
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
125
- toU8a(isBare) {
126
- throw new Error('Unimplemented');
127
- }
16
+ registry;
17
+ createdAtHash;
18
+ initialU8aLength;
19
+ isStorageFallback;
20
+ constructor(registry, value) {
21
+ const decoded = decodeJson(value);
22
+ super(decoded);
23
+ this.registry = registry;
24
+ objectProperties(this, decoded.map(([k]) => k), (k) => this.get(k));
25
+ }
26
+ /**
27
+ * @description Always 0, never encodes as a Uint8Array
28
+ */
29
+ get encodedLength() {
30
+ return 0;
31
+ }
32
+ /**
33
+ * @description returns a hash of the contents
34
+ */
35
+ get hash() {
36
+ return this.registry.hash(this.toU8a());
37
+ }
38
+ /**
39
+ * @description Checks if the value is an empty value
40
+ */
41
+ get isEmpty() {
42
+ return [...this.keys()].length === 0;
43
+ }
44
+ /**
45
+ * @description Compares the value of the input to see if there is a match
46
+ */
47
+ eq(other) {
48
+ return compareMap(this, other);
49
+ }
50
+ /**
51
+ * @description Returns a typed value from the internal map
52
+ */
53
+ getT(key) {
54
+ return this.get(key);
55
+ }
56
+ /**
57
+ * @description Unimplemented, will throw
58
+ */
59
+ inspect() {
60
+ throw new Error('Unimplemented');
61
+ }
62
+ /**
63
+ * @description Unimplemented, will throw
64
+ */
65
+ toHex() {
66
+ throw new Error('Unimplemented');
67
+ }
68
+ /**
69
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
70
+ */
71
+ toHuman() {
72
+ return [...this.entries()].reduce((json, [key, value]) => {
73
+ json[key] = isFunction(value.toHuman)
74
+ ? value.toHuman()
75
+ : value;
76
+ return json;
77
+ }, {});
78
+ }
79
+ /**
80
+ * @description Converts the Object to JSON, typically used for RPC transfers
81
+ */
82
+ toJSON() {
83
+ return [...this.entries()].reduce((json, [key, value]) => {
84
+ json[key] = value;
85
+ return json;
86
+ }, {});
87
+ }
88
+ /**
89
+ * @description Converts the value in a best-fit primitive form
90
+ */
91
+ toPrimitive() {
92
+ return [...this.entries()].reduce((json, [key, value]) => {
93
+ json[key] = isFunction(value.toPrimitive)
94
+ ? value.toPrimitive()
95
+ : value;
96
+ return json;
97
+ }, {});
98
+ }
99
+ /**
100
+ * @description Returns the base runtime type name for this instance
101
+ */
102
+ toRawType() {
103
+ return 'Json';
104
+ }
105
+ /**
106
+ * @description Returns the string representation of the value
107
+ */
108
+ toString() {
109
+ return stringify(this.toJSON());
110
+ }
111
+ /**
112
+ * @description Unimplemented, will throw
113
+ */
114
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
115
+ toU8a(isBare) {
116
+ throw new Error('Unimplemented');
117
+ }
128
118
  }