@mainsail/utils 0.0.1-evm.43 → 0.0.1-evm.45
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator-set-pack.d.ts","sourceRoot":"","sources":["../source/validator-set-pack.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,cAAc,OAAO,EAAE,KAAG,MAS1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,oBAAoB,MAAM,KAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"validator-set-pack.d.ts","sourceRoot":"","sources":["../source/validator-set-pack.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,cAAc,OAAO,EAAE,KAAG,MAS1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,oBAAoB,MAAM,KAAG,OAAO,EAwBtF,CAAC"}
|
|
@@ -8,11 +8,21 @@ export const validatorSetPack = (validatorSet) => {
|
|
|
8
8
|
return packed;
|
|
9
9
|
};
|
|
10
10
|
export const validatorSetUnpack = (packed, numberOfValidators) => {
|
|
11
|
-
|
|
11
|
+
if (!Number.isInteger(numberOfValidators) || numberOfValidators < 0) {
|
|
12
|
+
throw new RangeError("`numberOfValidators` must be a non-negative integer");
|
|
13
|
+
}
|
|
14
|
+
if (packed < 0n) {
|
|
15
|
+
throw new RangeError("`packed` must be non-negative");
|
|
16
|
+
}
|
|
17
|
+
if (packed >> BigInt(numberOfValidators) !== 0n) {
|
|
18
|
+
throw new RangeError("`packed` contains set bits beyond `numberOfValidators`");
|
|
19
|
+
}
|
|
20
|
+
const validatorSet = Array.from({ length: numberOfValidators });
|
|
21
|
+
let mask = 1n;
|
|
12
22
|
for (let index = 0; index < numberOfValidators; index++) {
|
|
13
|
-
const
|
|
14
|
-
const isSet = (packed & mask) > 0;
|
|
23
|
+
const isSet = (packed & mask) !== 0n;
|
|
15
24
|
validatorSet[index] = isSet;
|
|
25
|
+
mask <<= 1n;
|
|
16
26
|
}
|
|
17
27
|
return validatorSet;
|
|
18
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator-set-pack.js","sourceRoot":"","sources":["../source/validator-set-pack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAuB,EAAU,EAAE;IACnE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,kBAA0B,EAAa,EAAE;IAC3F,MAAM,
|
|
1
|
+
{"version":3,"file":"validator-set-pack.js","sourceRoot":"","sources":["../source/validator-set-pack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAuB,EAAU,EAAE;IACnE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,kBAA0B,EAAa,EAAE;IAC3F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,UAAU,CAAC,qDAAqD,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,wDAAwD,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,YAAY,GAAc,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE3E,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,kBAAkB,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAE5B,IAAI,KAAK,EAAE,CAAC;IACb,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mainsail/utils",
|
|
3
|
-
"version": "0.0.1-evm.
|
|
3
|
+
"version": "0.0.1-evm.45",
|
|
4
4
|
"description": "Performance oriented implementations of commonly used functions in TypeScript.",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"contributors": [],
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"lodash": "4.17.21",
|
|
37
37
|
"micro-bmark": "0.4.2",
|
|
38
38
|
"pluralize": "8.0.0",
|
|
39
|
-
"uvu": "0.5.6"
|
|
39
|
+
"uvu": "0.5.6",
|
|
40
|
+
"@mainsail/test-runner": "0.0.1-evm.45"
|
|
40
41
|
},
|
|
41
42
|
"engines": {
|
|
42
43
|
"node": ">=20.x"
|