@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.
- package/abstract/Array.js +140 -155
- package/abstract/Base.js +95 -112
- package/abstract/Int.js +212 -220
- package/abstract/Object.js +34 -45
- package/abstract/index.js +3 -6
- package/base/Compact.js +149 -165
- package/base/DoNotConstruct.js +61 -64
- package/base/Enum.js +345 -382
- package/base/Int.js +14 -18
- package/base/Null.js +71 -82
- package/base/Option.js +217 -226
- package/base/Result.js +54 -67
- package/base/Tuple.js +96 -101
- package/base/UInt.js +11 -15
- package/base/Vec.js +84 -89
- package/base/VecAny.js +8 -12
- package/base/VecFixed.js +59 -70
- package/base/index.js +12 -15
- package/bundle.js +7 -10
- package/cjs/abstract/Array.js +138 -159
- package/cjs/abstract/Base.js +96 -117
- package/cjs/abstract/Int.js +215 -238
- package/cjs/abstract/Object.js +30 -49
- package/cjs/abstract/index.js +8 -25
- package/cjs/base/Compact.js +151 -173
- package/cjs/base/DoNotConstruct.js +63 -70
- package/cjs/base/Enum.js +350 -396
- package/cjs/base/Int.js +16 -24
- package/cjs/base/Null.js +70 -86
- package/cjs/base/Option.js +220 -234
- package/cjs/base/Result.js +56 -71
- package/cjs/base/Tuple.js +103 -109
- package/cjs/base/UInt.js +13 -19
- package/cjs/base/Vec.js +94 -101
- package/cjs/base/VecAny.js +10 -16
- package/cjs/base/VecFixed.js +66 -79
- package/cjs/base/index.js +26 -88
- package/cjs/bundle.js +11 -86
- package/cjs/detectOther.js +2 -10
- package/cjs/detectPackage.js +6 -11
- package/cjs/extended/BTreeMap.js +10 -16
- package/cjs/extended/BTreeSet.js +162 -178
- package/cjs/extended/BitVec.js +70 -77
- package/cjs/extended/Bytes.js +59 -62
- package/cjs/extended/HashMap.js +10 -16
- package/cjs/extended/Linkage.js +50 -60
- package/cjs/extended/Map.js +176 -181
- package/cjs/extended/OptionBool.js +65 -68
- package/cjs/extended/Range.js +37 -46
- package/cjs/extended/RangeInclusive.js +13 -21
- package/cjs/extended/Type.js +14 -22
- package/cjs/extended/U8aFixed.js +33 -43
- package/cjs/extended/WrapperKeepOpaque.js +99 -99
- package/cjs/extended/WrapperOpaque.js +19 -28
- package/cjs/extended/index.js +31 -108
- package/cjs/index.js +3 -15
- package/cjs/native/Bool.js +101 -116
- package/cjs/native/Date.js +125 -151
- package/cjs/native/Float.js +95 -114
- package/cjs/native/Json.js +102 -124
- package/cjs/native/Raw.js +128 -150
- package/cjs/native/Set.js +200 -220
- package/cjs/native/Struct.data.js +2 -9
- package/cjs/native/Struct.js +238 -251
- package/cjs/native/Text.js +137 -149
- package/cjs/native/index.js +21 -78
- package/cjs/packageInfo.js +2 -16
- package/cjs/primitive/F32.js +8 -11
- package/cjs/primitive/F64.js +8 -11
- package/cjs/primitive/I128.js +8 -11
- package/cjs/primitive/I16.js +8 -11
- package/cjs/primitive/I256.js +8 -11
- package/cjs/primitive/I32.js +8 -11
- package/cjs/primitive/I64.js +8 -11
- package/cjs/primitive/I8.js +8 -11
- package/cjs/primitive/U128.js +8 -11
- package/cjs/primitive/U16.js +8 -11
- package/cjs/primitive/U256.js +8 -11
- package/cjs/primitive/U32.js +8 -11
- package/cjs/primitive/U64.js +8 -11
- package/cjs/primitive/U8.js +8 -11
- package/cjs/primitive/USize.js +7 -13
- package/cjs/primitive/index.js +47 -199
- package/cjs/types/codec.js +2 -1
- package/cjs/types/helpers.js +2 -1
- package/cjs/types/index.js +6 -48
- package/cjs/types/interfaces.js +2 -1
- package/cjs/types/registry.js +2 -1
- package/cjs/utils/compareArray.js +12 -17
- package/cjs/utils/compareMap.js +23 -26
- package/cjs/utils/compareSet.js +17 -23
- package/cjs/utils/decodeU8a.js +63 -74
- package/cjs/utils/index.js +24 -91
- package/cjs/utils/mapToTypeMap.js +13 -18
- package/cjs/utils/sanitize.js +198 -204
- package/cjs/utils/sortValues.js +39 -49
- package/cjs/utils/typeToConstructor.js +8 -11
- package/cjs/utils/typesToMap.js +10 -16
- package/cjs/utils/util.js +6 -11
- package/detectOther.js +0 -5
- package/detectPackage.js +2 -7
- package/extended/BTreeMap.js +8 -11
- package/extended/BTreeSet.js +159 -171
- package/extended/BitVec.js +63 -70
- package/extended/Bytes.js +56 -57
- package/extended/HashMap.js +8 -11
- package/extended/Linkage.js +46 -51
- package/extended/Map.js +173 -173
- package/extended/OptionBool.js +62 -62
- package/extended/Range.js +31 -39
- package/extended/RangeInclusive.js +11 -16
- package/extended/Type.js +12 -17
- package/extended/U8aFixed.js +30 -36
- package/extended/WrapperKeepOpaque.js +92 -91
- package/extended/WrapperOpaque.js +17 -23
- package/extended/index.js +14 -17
- package/index.js +2 -5
- package/native/Bool.js +102 -111
- package/native/Date.js +126 -144
- package/native/Float.js +94 -107
- package/native/Json.js +104 -114
- package/native/Raw.js +130 -146
- package/native/Set.js +194 -209
- package/native/Struct.data.js +0 -3
- package/native/Struct.js +233 -241
- package/native/Text.js +135 -143
- package/native/index.js +8 -11
- package/package.json +8 -5
- package/packageInfo.js +1 -11
- package/primitive/F32.js +3 -7
- package/primitive/F64.js +3 -7
- package/primitive/I128.js +3 -7
- package/primitive/I16.js +3 -7
- package/primitive/I256.js +3 -7
- package/primitive/I32.js +3 -7
- package/primitive/I64.js +3 -7
- package/primitive/I8.js +3 -7
- package/primitive/U128.js +3 -7
- package/primitive/U16.js +3 -7
- package/primitive/U256.js +3 -7
- package/primitive/U32.js +3 -7
- package/primitive/U64.js +3 -7
- package/primitive/U8.js +3 -7
- package/primitive/USize.js +5 -9
- package/primitive/index.js +15 -18
- package/types/index.js +4 -7
- package/utils/compareArray.js +7 -11
- package/utils/compareMap.js +18 -19
- package/utils/compareSet.js +12 -16
- package/utils/decodeU8a.js +54 -61
- package/utils/index.js +9 -12
- package/utils/mapToTypeMap.js +9 -13
- package/utils/sanitize.js +182 -185
- package/utils/sortValues.js +32 -36
- package/utils/typeToConstructor.js +3 -4
- package/utils/typesToMap.js +5 -8
- package/utils/util.js +1 -4
package/cjs/utils/sanitize.js
CHANGED
|
@@ -1,240 +1,234 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.alias = alias;
|
|
7
|
-
exports.cleanupCompact = cleanupCompact;
|
|
8
|
-
exports.findClosing = findClosing;
|
|
9
|
-
exports.flattenSingleTuple = flattenSingleTuple;
|
|
10
|
-
exports.removeColons = removeColons;
|
|
11
|
-
exports.removeExtensions = removeExtensions;
|
|
12
|
-
exports.removeGenerics = removeGenerics;
|
|
13
|
-
exports.removePairOf = removePairOf;
|
|
14
|
-
exports.removeTraits = removeTraits;
|
|
15
|
-
exports.removeWrap = removeWrap;
|
|
16
|
-
exports.sanitize = sanitize;
|
|
17
|
-
exports.trim = trim;
|
|
18
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
19
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
20
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitize = exports.removeWrap = exports.removeTraits = exports.removePairOf = exports.removeGenerics = exports.removeColons = exports.removeExtensions = exports.flattenSingleTuple = exports.cleanupCompact = exports.alias = exports.findClosing = exports.trim = void 0;
|
|
21
4
|
const BOUNDED = ['BTreeMap', 'BTreeSet', 'HashMap', 'Vec'];
|
|
22
5
|
const ALLOWED_BOXES = BOUNDED.concat(['Compact', 'DoNotConstruct', 'Int', 'Linkage', 'Range', 'RangeInclusive', 'Result', 'Opaque', 'Option', 'UInt', 'WrapperKeepOpaque', 'WrapperOpaque']);
|
|
23
6
|
const BOX_PRECEDING = ['<', '(', '[', '"', ',', ' ']; // start of vec, tuple, fixed array, part of struct def or in tuple
|
|
24
|
-
|
|
25
7
|
const mappings = [
|
|
26
|
-
// alias <T::InherentOfflineReport as InherentOfflineReport>::Inherent -> InherentOfflineReport
|
|
27
|
-
alias('<T::InherentOfflineReport as InherentOfflineReport>::Inherent', 'InherentOfflineReport', false),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
alias
|
|
44
|
-
|
|
45
|
-
alias
|
|
46
|
-
|
|
47
|
-
alias('
|
|
48
|
-
|
|
49
|
-
alias
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
8
|
+
// alias <T::InherentOfflineReport as InherentOfflineReport>::Inherent -> InherentOfflineReport
|
|
9
|
+
alias('<T::InherentOfflineReport as InherentOfflineReport>::Inherent', 'InherentOfflineReport', false),
|
|
10
|
+
alias('VecDeque<', 'Vec<', false),
|
|
11
|
+
// <T::Balance as HasCompact>
|
|
12
|
+
cleanupCompact(),
|
|
13
|
+
// Change BoundedVec<Type, Size> to Vec<Type>
|
|
14
|
+
removeExtensions('Bounded', true),
|
|
15
|
+
// Change WeakVec<Type> to Vec<Type>
|
|
16
|
+
removeExtensions('Weak', false),
|
|
17
|
+
// Remove all the trait prefixes
|
|
18
|
+
removeTraits(),
|
|
19
|
+
// remove PairOf<T> -> (T, T)
|
|
20
|
+
removePairOf(),
|
|
21
|
+
// remove boxing, `Box<Proposal>` -> `Proposal`
|
|
22
|
+
removeWrap('Box<'),
|
|
23
|
+
// remove generics, `MisbehaviorReport<Hash, BlockNumber>` -> `MisbehaviorReport`
|
|
24
|
+
removeGenerics(),
|
|
25
|
+
// alias String -> Text (compat with jsonrpc methods)
|
|
26
|
+
alias('String', 'Text'),
|
|
27
|
+
// alias Vec<u8> -> Bytes
|
|
28
|
+
alias('Vec<u8>', 'Bytes'),
|
|
29
|
+
alias('&\\[u8\\]', 'Bytes'),
|
|
30
|
+
alias("&'static\\[u8\\]", 'Bytes'),
|
|
31
|
+
// alias RawAddress -> Address
|
|
32
|
+
alias('RawAddress', 'Address'),
|
|
33
|
+
// lookups, mapped to Address/AccountId as appropriate in runtime
|
|
34
|
+
alias('Lookup::Source', 'LookupSource'),
|
|
35
|
+
alias('Lookup::Target', 'LookupTarget'),
|
|
36
|
+
// HACK duplication between contracts & primitives, however contracts prefixed with exec
|
|
37
|
+
alias('exec::StorageKey', 'ContractStorageKey'),
|
|
38
|
+
// flattens tuples with one value, `(AccountId)` -> `AccountId`
|
|
39
|
+
flattenSingleTuple(),
|
|
40
|
+
// converts ::Type to Type, <T as Trait<I>>::Proposal -> Proposal
|
|
41
|
+
removeColons(),
|
|
42
|
+
// remove all trailing spaces - this should always be the last
|
|
43
|
+
trim()
|
|
44
|
+
];
|
|
60
45
|
function trim() {
|
|
61
|
-
|
|
46
|
+
return (value) => value.trim();
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
// given a starting index, find the closing >
|
|
48
|
+
exports.trim = trim;
|
|
65
49
|
function findClosing(value, start) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
50
|
+
let depth = 0;
|
|
51
|
+
for (let index = start; index < value.length; index++) {
|
|
52
|
+
if (value[index] === '>') {
|
|
53
|
+
if (!depth) {
|
|
54
|
+
return index;
|
|
55
|
+
}
|
|
56
|
+
depth--;
|
|
57
|
+
}
|
|
58
|
+
else if (value[index] === '<') {
|
|
59
|
+
depth++;
|
|
60
|
+
}
|
|
75
61
|
}
|
|
76
|
-
|
|
77
|
-
throw new Error(`Unable to find closing matching <> on '${value}' (start ${start})`);
|
|
62
|
+
throw new Error(`Unable to find closing matching <> on '${value}' (start ${start})`);
|
|
78
63
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
64
|
+
exports.findClosing = findClosing;
|
|
65
|
+
function alias(src, dest, withChecks = true) {
|
|
66
|
+
const from = new RegExp(`(^${src}|${BOX_PRECEDING.map((box) => `\\${box}${src}`).join('|')})`, 'g');
|
|
67
|
+
const to = (src) => {
|
|
68
|
+
from.lastIndex = 0;
|
|
69
|
+
return withChecks && BOX_PRECEDING.includes(src[0])
|
|
70
|
+
? `${src[0]}${dest}`
|
|
71
|
+
: dest;
|
|
72
|
+
};
|
|
73
|
+
return (value) => value.replace(from, to);
|
|
87
74
|
}
|
|
75
|
+
exports.alias = alias;
|
|
88
76
|
function cleanupCompact() {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
return (value) => {
|
|
78
|
+
if (value.includes(' as HasCompact')) {
|
|
79
|
+
for (let index = 0; index < value.length; index++) {
|
|
80
|
+
if (value[index] === '<') {
|
|
81
|
+
const end = findClosing(value, index + 1) - 14;
|
|
82
|
+
if (value.substring(end, end + 14) === ' as HasCompact') {
|
|
83
|
+
value = `Compact<${value.substring(index + 1, end)}>`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
97
87
|
}
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
return value;
|
|
101
|
-
};
|
|
88
|
+
return value;
|
|
89
|
+
};
|
|
102
90
|
}
|
|
91
|
+
exports.cleanupCompact = cleanupCompact;
|
|
103
92
|
function flattenSingleTuple() {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
93
|
+
const from1 = /,\)/g;
|
|
94
|
+
const from2 = /\(([^,]+)\)/;
|
|
95
|
+
return (value) => {
|
|
96
|
+
from1.lastIndex = 0;
|
|
97
|
+
return value
|
|
98
|
+
// tuples may have trailing commas, e.g. (u32, BlockNumber, )
|
|
99
|
+
.replace(from1, ')')
|
|
100
|
+
// change (u32) -> u32
|
|
101
|
+
.replace(from2, '$1');
|
|
102
|
+
};
|
|
114
103
|
}
|
|
104
|
+
exports.flattenSingleTuple = flattenSingleTuple;
|
|
115
105
|
function replaceTagWith(value, matcher, replacer) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
106
|
+
let index = -1;
|
|
107
|
+
while (true) {
|
|
108
|
+
index = value.indexOf(matcher, index + 1);
|
|
109
|
+
if (index === -1) {
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
const start = index + matcher.length;
|
|
113
|
+
const end = findClosing(value, start);
|
|
114
|
+
value = `${value.substring(0, index)}${replacer(value.substring(start, end))}${value.substring(end + 1)}`;
|
|
121
115
|
}
|
|
122
|
-
const start = index + matcher.length;
|
|
123
|
-
const end = findClosing(value, start);
|
|
124
|
-
value = `${value.substring(0, index)}${replacer(value.substring(start, end))}${value.substring(end + 1)}`;
|
|
125
|
-
}
|
|
126
116
|
}
|
|
127
|
-
|
|
128
|
-
// remove the Bounded* or Weak* wrappers
|
|
129
117
|
function removeExtensions(type, isSized) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
118
|
+
return (value) => {
|
|
119
|
+
for (let i = 0; i < BOUNDED.length; i++) {
|
|
120
|
+
const tag = BOUNDED[i];
|
|
121
|
+
value = replaceTagWith(value, `${type}${tag}<`, (v) => {
|
|
122
|
+
const parts = v
|
|
123
|
+
.split(',')
|
|
124
|
+
.map((s) => s.trim())
|
|
125
|
+
.filter((s) => s);
|
|
126
|
+
if (isSized) {
|
|
127
|
+
parts.pop();
|
|
128
|
+
}
|
|
129
|
+
return `${tag}<${parts.join(',')}>`;
|
|
130
|
+
});
|
|
137
131
|
}
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
return value;
|
|
142
|
-
};
|
|
132
|
+
return value;
|
|
133
|
+
};
|
|
143
134
|
}
|
|
135
|
+
exports.removeExtensions = removeExtensions;
|
|
144
136
|
function removeColons() {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
137
|
+
return (value) => {
|
|
138
|
+
let index = 0;
|
|
139
|
+
while (index !== -1) {
|
|
140
|
+
index = value.indexOf('::');
|
|
141
|
+
if (index === 0) {
|
|
142
|
+
value = value.substring(2);
|
|
143
|
+
}
|
|
144
|
+
else if (index !== -1) {
|
|
145
|
+
let start = index;
|
|
146
|
+
while (start !== -1 && !BOX_PRECEDING.includes(value[start])) {
|
|
147
|
+
start--;
|
|
148
|
+
}
|
|
149
|
+
value = `${value.substring(0, start + 1)}${value.substring(index + 2)}`;
|
|
150
|
+
}
|
|
155
151
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
return value;
|
|
160
|
-
};
|
|
152
|
+
return value;
|
|
153
|
+
};
|
|
161
154
|
}
|
|
155
|
+
exports.removeColons = removeColons;
|
|
162
156
|
function removeGenerics() {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
157
|
+
return (value) => {
|
|
158
|
+
for (let index = 0; index < value.length; index++) {
|
|
159
|
+
if (value[index] === '<') {
|
|
160
|
+
// check against the allowed wrappers, be it Vec<..>, Option<...> ...
|
|
161
|
+
const box = ALLOWED_BOXES.find((box) => {
|
|
162
|
+
const start = index - box.length;
|
|
163
|
+
return ((start >= 0 &&
|
|
164
|
+
value.substring(start, index) === box) && (
|
|
165
|
+
// make sure it is stand-alone, i.e. don't catch ElectionResult<...> as Result<...>
|
|
166
|
+
start === 0 ||
|
|
167
|
+
BOX_PRECEDING.includes(value[start - 1])));
|
|
168
|
+
});
|
|
169
|
+
// we have not found anything, unwrap generic innards
|
|
170
|
+
if (!box) {
|
|
171
|
+
const end = findClosing(value, index + 1);
|
|
172
|
+
value = `${value.substring(0, index)}${value.substring(end + 1)}`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
178
175
|
}
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
return value;
|
|
182
|
-
};
|
|
176
|
+
return value;
|
|
177
|
+
};
|
|
183
178
|
}
|
|
184
|
-
|
|
185
|
-
// remove the PairOf wrappers
|
|
179
|
+
exports.removeGenerics = removeGenerics;
|
|
186
180
|
function removePairOf() {
|
|
187
|
-
|
|
188
|
-
|
|
181
|
+
const replacer = (v) => `(${v},${v})`;
|
|
182
|
+
return (value) => replaceTagWith(value, 'PairOf<', replacer);
|
|
189
183
|
}
|
|
190
|
-
|
|
191
|
-
// remove the type traits
|
|
184
|
+
exports.removePairOf = removePairOf;
|
|
192
185
|
function removeTraits() {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
186
|
+
const from1 = /\s/g;
|
|
187
|
+
const from2 = /(T|Self)::/g;
|
|
188
|
+
const from3 = /<(T|Self)asTrait>::/g;
|
|
189
|
+
const from4 = /<Tas[a-z]+::Trait>::/g;
|
|
190
|
+
const from5 = /<LookupasStaticLookup>/g;
|
|
191
|
+
const from6 = /::Type/g;
|
|
192
|
+
return (value) => {
|
|
193
|
+
from1.lastIndex = 0;
|
|
194
|
+
from2.lastIndex = 0;
|
|
195
|
+
from3.lastIndex = 0;
|
|
196
|
+
from4.lastIndex = 0;
|
|
197
|
+
from5.lastIndex = 0;
|
|
198
|
+
from6.lastIndex = 0;
|
|
199
|
+
return value
|
|
200
|
+
// remove all whitespaces
|
|
201
|
+
.replace(from1, '')
|
|
202
|
+
// anything `T::<type>` to end up as `<type>`
|
|
203
|
+
.replace(from2, '')
|
|
204
|
+
// replace `<T as Trait>::` (whitespaces were removed above)
|
|
205
|
+
.replace(from3, '')
|
|
206
|
+
// replace `<T as something::Trait>::` (whitespaces were removed above)
|
|
207
|
+
.replace(from4, '')
|
|
208
|
+
// replace <Lookup as StaticLookup>
|
|
209
|
+
.replace(from5, 'Lookup')
|
|
210
|
+
// replace `<...>::Type`
|
|
211
|
+
.replace(from6, '');
|
|
212
|
+
};
|
|
220
213
|
}
|
|
221
|
-
|
|
222
|
-
// remove wrapping values, i.e. Box<Proposal> -> Proposal
|
|
214
|
+
exports.removeTraits = removeTraits;
|
|
223
215
|
function removeWrap(check) {
|
|
224
|
-
|
|
225
|
-
|
|
216
|
+
const replacer = (v) => v;
|
|
217
|
+
return (value) => replaceTagWith(value, check, replacer);
|
|
226
218
|
}
|
|
219
|
+
exports.removeWrap = removeWrap;
|
|
227
220
|
const sanitizeMap = new Map();
|
|
228
221
|
function sanitize(value) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
222
|
+
const startValue = value.toString();
|
|
223
|
+
const memoized = sanitizeMap.get(startValue);
|
|
224
|
+
if (memoized) {
|
|
225
|
+
return memoized;
|
|
226
|
+
}
|
|
227
|
+
let result = startValue;
|
|
228
|
+
for (let i = 0; i < mappings.length; i++) {
|
|
229
|
+
result = mappings[i](result);
|
|
230
|
+
}
|
|
231
|
+
sanitizeMap.set(startValue, result);
|
|
232
|
+
return result;
|
|
233
|
+
}
|
|
234
|
+
exports.sanitize = sanitize;
|
package/cjs/utils/sortValues.js
CHANGED
|
@@ -1,76 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.sortAsc = sortAsc;
|
|
7
|
-
exports.sortMap = sortMap;
|
|
8
|
-
exports.sortSet = sortSet;
|
|
9
|
-
var _util = require("@polkadot/util");
|
|
10
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
11
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortMap = exports.sortSet = exports.sortAsc = void 0;
|
|
4
|
+
const util_1 = require("@polkadot/util");
|
|
13
5
|
/** @internal **/
|
|
14
6
|
function isArrayLike(arg) {
|
|
15
|
-
|
|
7
|
+
return arg instanceof Uint8Array || Array.isArray(arg);
|
|
16
8
|
}
|
|
17
|
-
|
|
18
9
|
/** @internal **/
|
|
19
10
|
function isCodec(arg) {
|
|
20
|
-
|
|
11
|
+
return (0, util_1.isFunction)(arg && arg.toU8a);
|
|
21
12
|
}
|
|
22
|
-
|
|
23
13
|
/** @internal **/
|
|
24
14
|
function isEnum(arg) {
|
|
25
|
-
|
|
15
|
+
return isCodec(arg) && (0, util_1.isNumber)(arg.index) && isCodec(arg.value);
|
|
26
16
|
}
|
|
27
|
-
|
|
28
17
|
/** @internal */
|
|
29
18
|
function isNumberLike(arg) {
|
|
30
|
-
|
|
19
|
+
return (0, util_1.isNumber)(arg) || (0, util_1.isBn)(arg) || (0, util_1.isBigInt)(arg);
|
|
31
20
|
}
|
|
32
|
-
|
|
33
21
|
/** @internal */
|
|
34
22
|
function sortArray(a, b) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
// Vec, Tuple, Bytes etc.
|
|
24
|
+
let sortRes = 0;
|
|
25
|
+
const minLen = Math.min(a.length, b.length);
|
|
26
|
+
for (let i = 0; i < minLen; ++i) {
|
|
27
|
+
sortRes = sortAsc(a[i], b[i]);
|
|
28
|
+
if (sortRes !== 0) {
|
|
29
|
+
return sortRes;
|
|
30
|
+
}
|
|
42
31
|
}
|
|
43
|
-
|
|
44
|
-
return a.length - b.length;
|
|
32
|
+
return a.length - b.length;
|
|
45
33
|
}
|
|
46
|
-
|
|
47
34
|
/**
|
|
48
35
|
* Sort keys/values of BTreeSet/BTreeMap in ascending order for encoding compatibility with Rust's BTreeSet/BTreeMap
|
|
49
36
|
* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html)
|
|
50
37
|
* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html)
|
|
51
38
|
*/
|
|
52
39
|
function sortAsc(a, b) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
40
|
+
if (isNumberLike(a) && isNumberLike(b)) {
|
|
41
|
+
return (0, util_1.bnToBn)(a).cmp((0, util_1.bnToBn)(b));
|
|
42
|
+
}
|
|
43
|
+
else if (a instanceof Map && b instanceof Map) {
|
|
44
|
+
return sortAsc(Array.from(a.values()), Array.from(b.values()));
|
|
45
|
+
}
|
|
46
|
+
else if (isEnum(a) && isEnum(b)) {
|
|
47
|
+
return sortAsc(a.index, b.index) || sortAsc(a.value, b.value);
|
|
48
|
+
}
|
|
49
|
+
else if (isArrayLike(a) && isArrayLike(b)) {
|
|
50
|
+
return sortArray(a, b);
|
|
51
|
+
}
|
|
52
|
+
else if (isCodec(a) && isCodec(b)) {
|
|
53
|
+
// Text, Bool etc.
|
|
54
|
+
return sortAsc(a.toU8a(true), b.toU8a(true));
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Attempting to sort unrecognized values: ${(0, util_1.stringify)(a)} (typeof ${typeof a}) <-> ${(0, util_1.stringify)(b)} (typeof ${typeof b})`);
|
|
66
57
|
}
|
|
58
|
+
exports.sortAsc = sortAsc;
|
|
67
59
|
function sortSet(set) {
|
|
68
|
-
|
|
60
|
+
return new Set(Array.from(set).sort(sortAsc));
|
|
69
61
|
}
|
|
62
|
+
exports.sortSet = sortSet;
|
|
70
63
|
function sortMap(map) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return sortAsc(keyA, keyB);
|
|
75
|
-
}));
|
|
76
|
-
}
|
|
64
|
+
return new Map(Array.from(map.entries()).sort(([keyA], [keyB]) => sortAsc(keyA, keyB)));
|
|
65
|
+
}
|
|
66
|
+
exports.sortMap = sortMap;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.typeToConstructor = typeToConstructor;
|
|
7
|
-
var _util = require("@polkadot/util");
|
|
8
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
9
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typeToConstructor = void 0;
|
|
4
|
+
const util_1 = require("@polkadot/util");
|
|
11
5
|
function typeToConstructor(registry, type) {
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
return ((0, util_1.isString)(type)
|
|
7
|
+
? registry.createClassUnsafe(type)
|
|
8
|
+
: type);
|
|
9
|
+
}
|
|
10
|
+
exports.typeToConstructor = typeToConstructor;
|
package/cjs/utils/typesToMap.js
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const result = {};
|
|
13
|
-
for (let i = 0; i < keys.length; i++) {
|
|
14
|
-
result[keys[i]] = registry.getClassName(Types[i]) || new Types[i](registry).toRawType();
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
17
|
-
}
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typesToMap = void 0;
|
|
4
|
+
function typesToMap(registry, [Types, keys]) {
|
|
5
|
+
const result = {};
|
|
6
|
+
for (let i = 0; i < keys.length; i++) {
|
|
7
|
+
result[keys[i]] = registry.getClassName(Types[i]) || new Types[i](registry).toRawType();
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
exports.typesToMap = typesToMap;
|
package/cjs/utils/util.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.hasEq = hasEq;
|
|
7
|
-
var _util = require("@polkadot/util");
|
|
8
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
9
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasEq = void 0;
|
|
4
|
+
const util_1 = require("@polkadot/util");
|
|
11
5
|
function hasEq(o) {
|
|
12
|
-
|
|
13
|
-
}
|
|
6
|
+
return (0, util_1.isFunction)(o.eq);
|
|
7
|
+
}
|
|
8
|
+
exports.hasEq = hasEq;
|
package/detectOther.js
CHANGED
package/detectPackage.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
// Copyright 2017-2023 @polkadot/types-codec authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
// Do not edit, auto-generated by @polkadot/dev
|
|
5
|
-
|
|
6
1
|
import { detectPackage } from '@polkadot/util';
|
|
7
|
-
import others from
|
|
8
|
-
import { packageInfo } from
|
|
2
|
+
import others from './detectOther.js';
|
|
3
|
+
import { packageInfo } from './packageInfo.js';
|
|
9
4
|
detectPackage(packageInfo, null, others);
|