shufflecom-calculations 2.3.3 → 3.0.0
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/lib/airdrop/airdrop-calculator.d.ts +44 -0
- package/lib/airdrop/airdrop-calculator.js +96 -0
- package/lib/airdrop/airdrop-calculator.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/regex/index.js +1 -1
- package/lib/regex/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/vip-level-base.type.d.ts +19 -0
- package/lib/types/vip-level-base.type.js +84 -0
- package/lib/types/vip-level-base.type.js.map +1 -0
- package/lib/types/vip-level.type.d.ts +57 -0
- package/lib/types/vip-level.type.js +62 -0
- package/lib/types/vip-level.type.js.map +1 -0
- package/lib/utils/sports-content-fixture.types.d.ts +2 -2
- package/lib/utils/sports.types.js.map +1 -1
- package/package.json +2 -2
- package/src/airdrop/airdrop-calculator.spec.ts +327 -0
- package/src/airdrop/airdrop-calculator.ts +140 -0
- package/src/index.ts +2 -0
- package/src/regex/index.ts +2 -2
- package/src/regex/regex.spec.ts +6 -15
- package/src/types/vip-level-base.type.ts +81 -0
- package/src/types/vip-level.type.ts +57 -0
- package/src/utils/sports-content-fixture.types.ts +2 -2
- package/src/utils/sports.types.ts +5 -1
- package/lib/utils/airdrop.d.ts +0 -26
- package/lib/utils/airdrop.js +0 -51
- package/lib/utils/airdrop.js.map +0 -1
- package/src/utils/airdrop.spec.ts +0 -162
- package/src/utils/airdrop.ts +0 -92
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { VipLevel } from './vip-level.type';
|
|
2
|
+
export declare enum VipLevelBase {
|
|
3
|
+
UNRANKED = "UNRANKED",
|
|
4
|
+
WOOD = "WOOD",
|
|
5
|
+
BRONZE = "BRONZE",
|
|
6
|
+
SILVER = "SILVER",
|
|
7
|
+
GOLD = "GOLD",
|
|
8
|
+
PLATINUM = "PLATINUM",
|
|
9
|
+
JADE = "JADE",
|
|
10
|
+
SAPPHIRE = "SAPPHIRE",
|
|
11
|
+
RUBY = "RUBY",
|
|
12
|
+
DIAMOND = "DIAMOND",
|
|
13
|
+
OPAL = "OPAL",
|
|
14
|
+
DRAGON = "DRAGON",
|
|
15
|
+
MYTHIC = "MYTHIC",
|
|
16
|
+
DARK = "DARK",
|
|
17
|
+
LEGEND = "LEGEND"
|
|
18
|
+
}
|
|
19
|
+
export declare const getVipLevelBase: (vipLevel: VipLevel) => VipLevelBase;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getVipLevelBase = exports.VipLevelBase = void 0;
|
|
4
|
+
const vip_level_type_1 = require("./vip-level.type");
|
|
5
|
+
var VipLevelBase;
|
|
6
|
+
(function (VipLevelBase) {
|
|
7
|
+
VipLevelBase["UNRANKED"] = "UNRANKED";
|
|
8
|
+
VipLevelBase["WOOD"] = "WOOD";
|
|
9
|
+
VipLevelBase["BRONZE"] = "BRONZE";
|
|
10
|
+
VipLevelBase["SILVER"] = "SILVER";
|
|
11
|
+
VipLevelBase["GOLD"] = "GOLD";
|
|
12
|
+
VipLevelBase["PLATINUM"] = "PLATINUM";
|
|
13
|
+
VipLevelBase["JADE"] = "JADE";
|
|
14
|
+
VipLevelBase["SAPPHIRE"] = "SAPPHIRE";
|
|
15
|
+
VipLevelBase["RUBY"] = "RUBY";
|
|
16
|
+
VipLevelBase["DIAMOND"] = "DIAMOND";
|
|
17
|
+
VipLevelBase["OPAL"] = "OPAL";
|
|
18
|
+
VipLevelBase["DRAGON"] = "DRAGON";
|
|
19
|
+
VipLevelBase["MYTHIC"] = "MYTHIC";
|
|
20
|
+
VipLevelBase["DARK"] = "DARK";
|
|
21
|
+
VipLevelBase["LEGEND"] = "LEGEND";
|
|
22
|
+
})(VipLevelBase || (exports.VipLevelBase = VipLevelBase = {}));
|
|
23
|
+
const vipLevelToBaseMapping = {
|
|
24
|
+
[vip_level_type_1.VipLevel.UNRANKED]: VipLevelBase.UNRANKED,
|
|
25
|
+
[vip_level_type_1.VipLevel.WOOD]: VipLevelBase.WOOD,
|
|
26
|
+
[vip_level_type_1.VipLevel.BRONZE_1]: VipLevelBase.BRONZE,
|
|
27
|
+
[vip_level_type_1.VipLevel.BRONZE_2]: VipLevelBase.BRONZE,
|
|
28
|
+
[vip_level_type_1.VipLevel.BRONZE_3]: VipLevelBase.BRONZE,
|
|
29
|
+
[vip_level_type_1.VipLevel.BRONZE_4]: VipLevelBase.BRONZE,
|
|
30
|
+
[vip_level_type_1.VipLevel.BRONZE_5]: VipLevelBase.BRONZE,
|
|
31
|
+
[vip_level_type_1.VipLevel.SILVER_1]: VipLevelBase.SILVER,
|
|
32
|
+
[vip_level_type_1.VipLevel.SILVER_2]: VipLevelBase.SILVER,
|
|
33
|
+
[vip_level_type_1.VipLevel.SILVER_3]: VipLevelBase.SILVER,
|
|
34
|
+
[vip_level_type_1.VipLevel.SILVER_4]: VipLevelBase.SILVER,
|
|
35
|
+
[vip_level_type_1.VipLevel.SILVER_5]: VipLevelBase.SILVER,
|
|
36
|
+
[vip_level_type_1.VipLevel.GOLD_1]: VipLevelBase.GOLD,
|
|
37
|
+
[vip_level_type_1.VipLevel.GOLD_2]: VipLevelBase.GOLD,
|
|
38
|
+
[vip_level_type_1.VipLevel.GOLD_3]: VipLevelBase.GOLD,
|
|
39
|
+
[vip_level_type_1.VipLevel.GOLD_4]: VipLevelBase.GOLD,
|
|
40
|
+
[vip_level_type_1.VipLevel.GOLD_5]: VipLevelBase.GOLD,
|
|
41
|
+
[vip_level_type_1.VipLevel.PLATINUM_1]: VipLevelBase.PLATINUM,
|
|
42
|
+
[vip_level_type_1.VipLevel.PLATINUM_2]: VipLevelBase.PLATINUM,
|
|
43
|
+
[vip_level_type_1.VipLevel.PLATINUM_3]: VipLevelBase.PLATINUM,
|
|
44
|
+
[vip_level_type_1.VipLevel.PLATINUM_4]: VipLevelBase.PLATINUM,
|
|
45
|
+
[vip_level_type_1.VipLevel.PLATINUM_5]: VipLevelBase.PLATINUM,
|
|
46
|
+
[vip_level_type_1.VipLevel.JADE_1]: VipLevelBase.JADE,
|
|
47
|
+
[vip_level_type_1.VipLevel.JADE_2]: VipLevelBase.JADE,
|
|
48
|
+
[vip_level_type_1.VipLevel.JADE_3]: VipLevelBase.JADE,
|
|
49
|
+
[vip_level_type_1.VipLevel.JADE_4]: VipLevelBase.JADE,
|
|
50
|
+
[vip_level_type_1.VipLevel.JADE_5]: VipLevelBase.JADE,
|
|
51
|
+
[vip_level_type_1.VipLevel.SAPPHIRE_1]: VipLevelBase.SAPPHIRE,
|
|
52
|
+
[vip_level_type_1.VipLevel.SAPPHIRE_2]: VipLevelBase.SAPPHIRE,
|
|
53
|
+
[vip_level_type_1.VipLevel.SAPPHIRE_3]: VipLevelBase.SAPPHIRE,
|
|
54
|
+
[vip_level_type_1.VipLevel.SAPPHIRE_4]: VipLevelBase.SAPPHIRE,
|
|
55
|
+
[vip_level_type_1.VipLevel.SAPPHIRE_5]: VipLevelBase.SAPPHIRE,
|
|
56
|
+
[vip_level_type_1.VipLevel.RUBY_1]: VipLevelBase.RUBY,
|
|
57
|
+
[vip_level_type_1.VipLevel.RUBY_2]: VipLevelBase.RUBY,
|
|
58
|
+
[vip_level_type_1.VipLevel.RUBY_3]: VipLevelBase.RUBY,
|
|
59
|
+
[vip_level_type_1.VipLevel.RUBY_4]: VipLevelBase.RUBY,
|
|
60
|
+
[vip_level_type_1.VipLevel.RUBY_5]: VipLevelBase.RUBY,
|
|
61
|
+
[vip_level_type_1.VipLevel.DIAMOND_1]: VipLevelBase.DIAMOND,
|
|
62
|
+
[vip_level_type_1.VipLevel.DIAMOND_2]: VipLevelBase.DIAMOND,
|
|
63
|
+
[vip_level_type_1.VipLevel.DIAMOND_3]: VipLevelBase.DIAMOND,
|
|
64
|
+
[vip_level_type_1.VipLevel.DIAMOND_4]: VipLevelBase.DIAMOND,
|
|
65
|
+
[vip_level_type_1.VipLevel.DIAMOND_5]: VipLevelBase.DIAMOND,
|
|
66
|
+
[vip_level_type_1.VipLevel.OPAL_1]: VipLevelBase.OPAL,
|
|
67
|
+
[vip_level_type_1.VipLevel.OPAL_2]: VipLevelBase.OPAL,
|
|
68
|
+
[vip_level_type_1.VipLevel.OPAL_3]: VipLevelBase.OPAL,
|
|
69
|
+
[vip_level_type_1.VipLevel.OPAL_4]: VipLevelBase.OPAL,
|
|
70
|
+
[vip_level_type_1.VipLevel.OPAL_5]: VipLevelBase.OPAL,
|
|
71
|
+
[vip_level_type_1.VipLevel.DRAGON_1]: VipLevelBase.DRAGON,
|
|
72
|
+
[vip_level_type_1.VipLevel.DRAGON_2]: VipLevelBase.DRAGON,
|
|
73
|
+
[vip_level_type_1.VipLevel.DRAGON_3]: VipLevelBase.DRAGON,
|
|
74
|
+
[vip_level_type_1.VipLevel.DRAGON_4]: VipLevelBase.DRAGON,
|
|
75
|
+
[vip_level_type_1.VipLevel.DRAGON_5]: VipLevelBase.DRAGON,
|
|
76
|
+
[vip_level_type_1.VipLevel.MYTHIC]: VipLevelBase.MYTHIC,
|
|
77
|
+
[vip_level_type_1.VipLevel.DARK]: VipLevelBase.DARK,
|
|
78
|
+
[vip_level_type_1.VipLevel.LEGEND]: VipLevelBase.LEGEND,
|
|
79
|
+
};
|
|
80
|
+
const getVipLevelBase = (vipLevel) => {
|
|
81
|
+
return vipLevelToBaseMapping[vipLevel];
|
|
82
|
+
};
|
|
83
|
+
exports.getVipLevelBase = getVipLevelBase;
|
|
84
|
+
//# sourceMappingURL=vip-level-base.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vip-level-base.type.js","sourceRoot":"","sources":["../../src/types/vip-level-base.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare enum VipLevel {
|
|
2
|
+
UNRANKED = "UNRANKED",
|
|
3
|
+
WOOD = "WOOD",
|
|
4
|
+
BRONZE_1 = "BRONZE_1",
|
|
5
|
+
BRONZE_2 = "BRONZE_2",
|
|
6
|
+
BRONZE_3 = "BRONZE_3",
|
|
7
|
+
BRONZE_4 = "BRONZE_4",
|
|
8
|
+
BRONZE_5 = "BRONZE_5",
|
|
9
|
+
SILVER_1 = "SILVER_1",
|
|
10
|
+
SILVER_2 = "SILVER_2",
|
|
11
|
+
SILVER_3 = "SILVER_3",
|
|
12
|
+
SILVER_4 = "SILVER_4",
|
|
13
|
+
SILVER_5 = "SILVER_5",
|
|
14
|
+
GOLD_1 = "GOLD_1",
|
|
15
|
+
GOLD_2 = "GOLD_2",
|
|
16
|
+
GOLD_3 = "GOLD_3",
|
|
17
|
+
GOLD_4 = "GOLD_4",
|
|
18
|
+
GOLD_5 = "GOLD_5",
|
|
19
|
+
PLATINUM_1 = "PLATINUM_1",
|
|
20
|
+
PLATINUM_2 = "PLATINUM_2",
|
|
21
|
+
PLATINUM_3 = "PLATINUM_3",
|
|
22
|
+
PLATINUM_4 = "PLATINUM_4",
|
|
23
|
+
PLATINUM_5 = "PLATINUM_5",
|
|
24
|
+
JADE_1 = "JADE_1",
|
|
25
|
+
JADE_2 = "JADE_2",
|
|
26
|
+
JADE_3 = "JADE_3",
|
|
27
|
+
JADE_4 = "JADE_4",
|
|
28
|
+
JADE_5 = "JADE_5",
|
|
29
|
+
SAPPHIRE_1 = "SAPPHIRE_1",
|
|
30
|
+
SAPPHIRE_2 = "SAPPHIRE_2",
|
|
31
|
+
SAPPHIRE_3 = "SAPPHIRE_3",
|
|
32
|
+
SAPPHIRE_4 = "SAPPHIRE_4",
|
|
33
|
+
SAPPHIRE_5 = "SAPPHIRE_5",
|
|
34
|
+
RUBY_1 = "RUBY_1",
|
|
35
|
+
RUBY_2 = "RUBY_2",
|
|
36
|
+
RUBY_3 = "RUBY_3",
|
|
37
|
+
RUBY_4 = "RUBY_4",
|
|
38
|
+
RUBY_5 = "RUBY_5",
|
|
39
|
+
DIAMOND_1 = "DIAMOND_1",
|
|
40
|
+
DIAMOND_2 = "DIAMOND_2",
|
|
41
|
+
DIAMOND_3 = "DIAMOND_3",
|
|
42
|
+
DIAMOND_4 = "DIAMOND_4",
|
|
43
|
+
DIAMOND_5 = "DIAMOND_5",
|
|
44
|
+
OPAL_1 = "OPAL_1",
|
|
45
|
+
OPAL_2 = "OPAL_2",
|
|
46
|
+
OPAL_3 = "OPAL_3",
|
|
47
|
+
OPAL_4 = "OPAL_4",
|
|
48
|
+
OPAL_5 = "OPAL_5",
|
|
49
|
+
DRAGON_1 = "DRAGON_1",
|
|
50
|
+
DRAGON_2 = "DRAGON_2",
|
|
51
|
+
DRAGON_3 = "DRAGON_3",
|
|
52
|
+
DRAGON_4 = "DRAGON_4",
|
|
53
|
+
DRAGON_5 = "DRAGON_5",
|
|
54
|
+
MYTHIC = "MYTHIC",
|
|
55
|
+
DARK = "DARK",
|
|
56
|
+
LEGEND = "LEGEND"
|
|
57
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VipLevel = void 0;
|
|
4
|
+
var VipLevel;
|
|
5
|
+
(function (VipLevel) {
|
|
6
|
+
VipLevel["UNRANKED"] = "UNRANKED";
|
|
7
|
+
VipLevel["WOOD"] = "WOOD";
|
|
8
|
+
VipLevel["BRONZE_1"] = "BRONZE_1";
|
|
9
|
+
VipLevel["BRONZE_2"] = "BRONZE_2";
|
|
10
|
+
VipLevel["BRONZE_3"] = "BRONZE_3";
|
|
11
|
+
VipLevel["BRONZE_4"] = "BRONZE_4";
|
|
12
|
+
VipLevel["BRONZE_5"] = "BRONZE_5";
|
|
13
|
+
VipLevel["SILVER_1"] = "SILVER_1";
|
|
14
|
+
VipLevel["SILVER_2"] = "SILVER_2";
|
|
15
|
+
VipLevel["SILVER_3"] = "SILVER_3";
|
|
16
|
+
VipLevel["SILVER_4"] = "SILVER_4";
|
|
17
|
+
VipLevel["SILVER_5"] = "SILVER_5";
|
|
18
|
+
VipLevel["GOLD_1"] = "GOLD_1";
|
|
19
|
+
VipLevel["GOLD_2"] = "GOLD_2";
|
|
20
|
+
VipLevel["GOLD_3"] = "GOLD_3";
|
|
21
|
+
VipLevel["GOLD_4"] = "GOLD_4";
|
|
22
|
+
VipLevel["GOLD_5"] = "GOLD_5";
|
|
23
|
+
VipLevel["PLATINUM_1"] = "PLATINUM_1";
|
|
24
|
+
VipLevel["PLATINUM_2"] = "PLATINUM_2";
|
|
25
|
+
VipLevel["PLATINUM_3"] = "PLATINUM_3";
|
|
26
|
+
VipLevel["PLATINUM_4"] = "PLATINUM_4";
|
|
27
|
+
VipLevel["PLATINUM_5"] = "PLATINUM_5";
|
|
28
|
+
VipLevel["JADE_1"] = "JADE_1";
|
|
29
|
+
VipLevel["JADE_2"] = "JADE_2";
|
|
30
|
+
VipLevel["JADE_3"] = "JADE_3";
|
|
31
|
+
VipLevel["JADE_4"] = "JADE_4";
|
|
32
|
+
VipLevel["JADE_5"] = "JADE_5";
|
|
33
|
+
VipLevel["SAPPHIRE_1"] = "SAPPHIRE_1";
|
|
34
|
+
VipLevel["SAPPHIRE_2"] = "SAPPHIRE_2";
|
|
35
|
+
VipLevel["SAPPHIRE_3"] = "SAPPHIRE_3";
|
|
36
|
+
VipLevel["SAPPHIRE_4"] = "SAPPHIRE_4";
|
|
37
|
+
VipLevel["SAPPHIRE_5"] = "SAPPHIRE_5";
|
|
38
|
+
VipLevel["RUBY_1"] = "RUBY_1";
|
|
39
|
+
VipLevel["RUBY_2"] = "RUBY_2";
|
|
40
|
+
VipLevel["RUBY_3"] = "RUBY_3";
|
|
41
|
+
VipLevel["RUBY_4"] = "RUBY_4";
|
|
42
|
+
VipLevel["RUBY_5"] = "RUBY_5";
|
|
43
|
+
VipLevel["DIAMOND_1"] = "DIAMOND_1";
|
|
44
|
+
VipLevel["DIAMOND_2"] = "DIAMOND_2";
|
|
45
|
+
VipLevel["DIAMOND_3"] = "DIAMOND_3";
|
|
46
|
+
VipLevel["DIAMOND_4"] = "DIAMOND_4";
|
|
47
|
+
VipLevel["DIAMOND_5"] = "DIAMOND_5";
|
|
48
|
+
VipLevel["OPAL_1"] = "OPAL_1";
|
|
49
|
+
VipLevel["OPAL_2"] = "OPAL_2";
|
|
50
|
+
VipLevel["OPAL_3"] = "OPAL_3";
|
|
51
|
+
VipLevel["OPAL_4"] = "OPAL_4";
|
|
52
|
+
VipLevel["OPAL_5"] = "OPAL_5";
|
|
53
|
+
VipLevel["DRAGON_1"] = "DRAGON_1";
|
|
54
|
+
VipLevel["DRAGON_2"] = "DRAGON_2";
|
|
55
|
+
VipLevel["DRAGON_3"] = "DRAGON_3";
|
|
56
|
+
VipLevel["DRAGON_4"] = "DRAGON_4";
|
|
57
|
+
VipLevel["DRAGON_5"] = "DRAGON_5";
|
|
58
|
+
VipLevel["MYTHIC"] = "MYTHIC";
|
|
59
|
+
VipLevel["DARK"] = "DARK";
|
|
60
|
+
VipLevel["LEGEND"] = "LEGEND";
|
|
61
|
+
})(VipLevel || (exports.VipLevel = VipLevel = {}));
|
|
62
|
+
//# sourceMappingURL=vip-level.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vip-level.type.js","sourceRoot":"","sources":["../../src/types/vip-level.type.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAwDX;AAxDD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,yBAAa,CAAA;IACb,6BAAiB,CAAA;AACnB,CAAC,EAxDW,QAAQ,wBAAR,QAAQ,QAwDnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SportsFixtureInfoWithCompetition } from './sports-competition-fixture.types';
|
|
2
2
|
export declare class SportsContentWithFixturesInfo {
|
|
3
3
|
name: string;
|
|
4
|
-
fixtures:
|
|
4
|
+
fixtures: SportsFixtureInfoWithCompetition[];
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sports.types.js","sourceRoot":"","sources":["../../src/utils/sports.types.ts"],"names":[],"mappings":";;;;AAEA,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC9B,2CAAmB,CAAA;IACnB,uCAAe,CAAA;IACf,6CAAqB,CAAA;IAKrB,yCAAiB,CAAA;AACnB,CAAC,EATW,oBAAoB,oCAApB,oBAAoB,QAS/B;AAED,IAAY,uBAkBX;AAlBD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;IACb,0DAA+B,CAAA;IAC/B,0CAAe,CAAA;IACf,4DAAiC,CAAA;IACjC,8DAAmC,CAAA;IACnC,0DAA+B,CAAA;IAC/B,sDAA2B,CAAA;IAC3B,wDAA6B,CAAA;IAC7B,4DAAiC,CAAA;IACjC,8FAAmE,CAAA;IACnE,4EAAiD,CAAA;IACjD,kEAAuC,CAAA;IACvC,sDAA2B,CAAA;IAC3B,0DAA+B,CAAA;IAC/B,sDAA2B,CAAA;IAC3B,4CAAiB,CAAA;IACjB,gDAAqB,CAAA;AACvB,CAAC,EAlBW,uBAAuB,uCAAvB,uBAAuB,QAkBlC;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"sports.types.js","sourceRoot":"","sources":["../../src/utils/sports.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shufflecom-calculations",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"types": "lib/index.d.ts",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
},
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "ISC",
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "8b18a97920b22e1686d5cc8cb5c5b866eaa04752"
|
|
18
18
|
}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { VipLevel } from '../types/vip-level.type';
|
|
3
|
+
import { AirdropCalculator } from './airdrop-calculator';
|
|
4
|
+
|
|
5
|
+
describe('Airdrop Calculator', () => {
|
|
6
|
+
describe('getRankMultiplier', () => {
|
|
7
|
+
const testCases = [
|
|
8
|
+
{
|
|
9
|
+
description: 'Bronze and below',
|
|
10
|
+
vipLevels: [VipLevel.UNRANKED, VipLevel.WOOD, VipLevel.BRONZE_1, VipLevel.BRONZE_2, VipLevel.BRONZE_3, VipLevel.BRONZE_4, VipLevel.BRONZE_5],
|
|
11
|
+
expected: 1.0,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
description: 'Silver',
|
|
15
|
+
vipLevels: [VipLevel.SILVER_1, VipLevel.SILVER_2, VipLevel.SILVER_3, VipLevel.SILVER_4, VipLevel.SILVER_5],
|
|
16
|
+
expected: 1.01,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
description: 'Gold',
|
|
20
|
+
vipLevels: [VipLevel.GOLD_1, VipLevel.GOLD_2, VipLevel.GOLD_3, VipLevel.GOLD_4, VipLevel.GOLD_5],
|
|
21
|
+
expected: 1.02,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
description: 'Platinum',
|
|
25
|
+
vipLevels: [VipLevel.PLATINUM_1, VipLevel.PLATINUM_2, VipLevel.PLATINUM_3, VipLevel.PLATINUM_4, VipLevel.PLATINUM_5],
|
|
26
|
+
expected: 1.03,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
description: 'Jade',
|
|
30
|
+
vipLevels: [VipLevel.JADE_1, VipLevel.JADE_2, VipLevel.JADE_3, VipLevel.JADE_4, VipLevel.JADE_5],
|
|
31
|
+
expected: 1.04,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
description: 'Sapphire',
|
|
35
|
+
vipLevels: [VipLevel.SAPPHIRE_1, VipLevel.SAPPHIRE_2, VipLevel.SAPPHIRE_3, VipLevel.SAPPHIRE_4, VipLevel.SAPPHIRE_5],
|
|
36
|
+
expected: 1.05,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
description: 'Ruby',
|
|
40
|
+
vipLevels: [VipLevel.RUBY_1, VipLevel.RUBY_2, VipLevel.RUBY_3, VipLevel.RUBY_4, VipLevel.RUBY_5],
|
|
41
|
+
expected: 1.06,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
description: 'Diamond',
|
|
45
|
+
vipLevels: [VipLevel.DIAMOND_1, VipLevel.DIAMOND_2, VipLevel.DIAMOND_3, VipLevel.DIAMOND_4, VipLevel.DIAMOND_5],
|
|
46
|
+
expected: 1.07,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
description: 'Opal',
|
|
50
|
+
vipLevels: [VipLevel.OPAL_1, VipLevel.OPAL_2, VipLevel.OPAL_3, VipLevel.OPAL_4, VipLevel.OPAL_5],
|
|
51
|
+
expected: 1.08,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
description: 'Dragon',
|
|
55
|
+
vipLevels: [VipLevel.DRAGON_1, VipLevel.DRAGON_2, VipLevel.DRAGON_3, VipLevel.DRAGON_4, VipLevel.DRAGON_5],
|
|
56
|
+
expected: 1.09,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
description: 'Mythic and up',
|
|
60
|
+
vipLevels: [VipLevel.MYTHIC, VipLevel.DARK, VipLevel.LEGEND],
|
|
61
|
+
expected: 1.1,
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
for (const { description, vipLevels, expected } of testCases) {
|
|
66
|
+
it(`should return ${expected} for ${description} ranks`, () => {
|
|
67
|
+
for (const vipLevel of vipLevels) {
|
|
68
|
+
const result = AirdropCalculator.getRankMultiplier(vipLevel);
|
|
69
|
+
expect(result.raw).toEqual(expected);
|
|
70
|
+
expect(result.bps).toEqual(new BigNumber(expected).multipliedBy(10_000).toNumber());
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
describe('getTokenAllocationInfo', () => {
|
|
77
|
+
it('should return zeros for empty allocations array', () => {
|
|
78
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
79
|
+
tokenAllocations: [],
|
|
80
|
+
tokensClaimed: new BigNumber(0),
|
|
81
|
+
usdTotalWagered: new BigNumber(0),
|
|
82
|
+
hasKyc2: false,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
expect(result.totalAllocation.toString()).toBe('0');
|
|
86
|
+
expect(result.tokensClaimable.toString()).toBe('0');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('should only add to totalAllocation when allocations have no usdWageredSnapshot', () => {
|
|
90
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
91
|
+
tokenAllocations: [
|
|
92
|
+
{ allocatedAmount: new BigNumber(100), eventId: 1 },
|
|
93
|
+
{ allocatedAmount: new BigNumber(200), eventId: 2 },
|
|
94
|
+
{ allocatedAmount: new BigNumber(300), eventId: 3 },
|
|
95
|
+
],
|
|
96
|
+
tokensClaimed: new BigNumber(0),
|
|
97
|
+
usdTotalWagered: new BigNumber(1000),
|
|
98
|
+
hasKyc2: false,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
expect(result.totalAllocation.toString()).toBe('600');
|
|
102
|
+
expect(result.tokensClaimable.toString()).toBe('0');
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('should return zero totalAllocation when all allocatedAmounts are zero', () => {
|
|
106
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
107
|
+
tokenAllocations: [
|
|
108
|
+
{ allocatedAmount: new BigNumber(0), eventId: 1 },
|
|
109
|
+
{ allocatedAmount: new BigNumber(0), eventId: 2 },
|
|
110
|
+
{ allocatedAmount: new BigNumber(0), eventId: 3 },
|
|
111
|
+
],
|
|
112
|
+
tokensClaimed: new BigNumber(0),
|
|
113
|
+
usdTotalWagered: new BigNumber(1000),
|
|
114
|
+
hasKyc2: false,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
expect(result.totalAllocation.toString()).toBe('0');
|
|
118
|
+
expect(result.tokensClaimable.toString()).toBe('0');
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
describe('with snapshot allocations', () => {
|
|
122
|
+
const defaultAllocations = [
|
|
123
|
+
{ allocatedAmount: new BigNumber(1000), usdWageredSnapshot: new BigNumber(1000), eventId: 3 },
|
|
124
|
+
{ allocatedAmount: new BigNumber(1000), usdWageredSnapshot: new BigNumber(500), eventId: 1 },
|
|
125
|
+
{ allocatedAmount: new BigNumber(0), usdWageredSnapshot: new BigNumber(1000), eventId: 2 },
|
|
126
|
+
{ allocatedAmount: new BigNumber(2000), usdWageredSnapshot: new BigNumber(1500), eventId: 4 },
|
|
127
|
+
];
|
|
128
|
+
|
|
129
|
+
const expectedTotalAllocation = '4000';
|
|
130
|
+
|
|
131
|
+
// Sorted latest→earliest: E4(snap=$1500, 2000t), E3(snap=$1000, 1000t), E2(snap=$1000, 0t, skipped), E1(snap=$500, 1000t)
|
|
132
|
+
//
|
|
133
|
+
// Each event's available wager = (usdTotalWagered - mySnapshot) - wagerConsumedSoFar
|
|
134
|
+
// Excess from a later event spills to earlier events via wagerConsumedSoFar.
|
|
135
|
+
//
|
|
136
|
+
// Full unlock thresholds:
|
|
137
|
+
// rate=$20: E4 needs $36,000 → E3 needs $18,000 → E1 needs $18,000 → min usdTotalWagered=$72,500
|
|
138
|
+
// rate=$10: E4 needs $18,000 → E3 needs $9,000 → E1 needs $9,000 → min usdTotalWagered=$36,500
|
|
139
|
+
|
|
140
|
+
describe('non-KYC2 (rate: 20)', () => {
|
|
141
|
+
const fullyUnlockedWager = new BigNumber(72_500);
|
|
142
|
+
const partialWager = new BigNumber(37_500);
|
|
143
|
+
|
|
144
|
+
const testCasesNoKyc2 = [
|
|
145
|
+
{
|
|
146
|
+
description: 'fully unlocked - all allocations fully vested',
|
|
147
|
+
tokensClaimed: new BigNumber(0),
|
|
148
|
+
usdTotalWagered: fullyUnlockedWager,
|
|
149
|
+
expected: {
|
|
150
|
+
totalAllocation: expectedTotalAllocation,
|
|
151
|
+
tokensClaimable: expectedTotalAllocation,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
description: 'not fully unlocked should only have claimable up to vested amount',
|
|
156
|
+
tokensClaimed: new BigNumber(0),
|
|
157
|
+
usdTotalWagered: partialWager,
|
|
158
|
+
expected: {
|
|
159
|
+
totalAllocation: expectedTotalAllocation,
|
|
160
|
+
tokensClaimable: '2250',
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
description: 'should deduct claimed tokens from claimable amount',
|
|
165
|
+
tokensClaimed: new BigNumber(199),
|
|
166
|
+
usdTotalWagered: partialWager,
|
|
167
|
+
expected: {
|
|
168
|
+
totalAllocation: expectedTotalAllocation,
|
|
169
|
+
tokensClaimable: '2051',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
];
|
|
173
|
+
|
|
174
|
+
for (const { description, tokensClaimed, usdTotalWagered, expected } of testCasesNoKyc2) {
|
|
175
|
+
it(`should calculate ${description}`, () => {
|
|
176
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
177
|
+
tokenAllocations: defaultAllocations,
|
|
178
|
+
tokensClaimed,
|
|
179
|
+
usdTotalWagered,
|
|
180
|
+
hasKyc2: false,
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
expect(result.totalAllocation.toString()).toBe(expected.totalAllocation);
|
|
184
|
+
expect(result.tokensClaimable.toString()).toBe(expected.tokensClaimable);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
describe('KYC2 (rate: 10)', () => {
|
|
190
|
+
const fullyUnlockedWager = new BigNumber(36_500);
|
|
191
|
+
const partialWager = new BigNumber(27510);
|
|
192
|
+
|
|
193
|
+
const testCasesWithKyc2 = [
|
|
194
|
+
{
|
|
195
|
+
description: 'fully unlocked - all allocations fully vested',
|
|
196
|
+
tokensClaimed: new BigNumber(0),
|
|
197
|
+
usdTotalWagered: fullyUnlockedWager,
|
|
198
|
+
expected: {
|
|
199
|
+
totalAllocation: expectedTotalAllocation,
|
|
200
|
+
tokensClaimable: expectedTotalAllocation,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
description: 'not fully unlocked should only have claimable up to vested amount',
|
|
205
|
+
tokensClaimed: new BigNumber(0),
|
|
206
|
+
usdTotalWagered: partialWager,
|
|
207
|
+
expected: {
|
|
208
|
+
totalAllocation: expectedTotalAllocation,
|
|
209
|
+
tokensClaimable: '3101',
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
description: 'should deduct claimed tokens from claimable amount',
|
|
214
|
+
tokensClaimed: new BigNumber(199),
|
|
215
|
+
usdTotalWagered: partialWager,
|
|
216
|
+
expected: {
|
|
217
|
+
totalAllocation: expectedTotalAllocation,
|
|
218
|
+
tokensClaimable: '2902',
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
];
|
|
222
|
+
|
|
223
|
+
for (const { description, tokensClaimed, usdTotalWagered, expected } of testCasesWithKyc2) {
|
|
224
|
+
it(`should calculate ${description}`, () => {
|
|
225
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
226
|
+
tokenAllocations: defaultAllocations,
|
|
227
|
+
tokensClaimed,
|
|
228
|
+
usdTotalWagered,
|
|
229
|
+
hasKyc2: true,
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
expect(result.totalAllocation.toFixed()).toBe(expected.totalAllocation);
|
|
233
|
+
expect(result.tokensClaimable.toFixed()).toBe(expected.tokensClaimable);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
describe('Storage multiplier', () => {
|
|
239
|
+
// Same thresholds as KYC2 suite (rate=$10), scaled by storageMultiplier
|
|
240
|
+
const storageMultiplier = new BigNumber(10).pow(17);
|
|
241
|
+
const fullyUnlockedWager = new BigNumber(36_500).multipliedBy(storageMultiplier);
|
|
242
|
+
const partialWager = new BigNumber(18_990).multipliedBy(storageMultiplier);
|
|
243
|
+
|
|
244
|
+
const testCasesWithKyc2 = [
|
|
245
|
+
{
|
|
246
|
+
description: 'fully unlocked - all allocations fully vested',
|
|
247
|
+
tokensClaimed: new BigNumber(0),
|
|
248
|
+
usdTotalWagered: fullyUnlockedWager,
|
|
249
|
+
expected: {
|
|
250
|
+
totalAllocation: new BigNumber(expectedTotalAllocation).multipliedBy(storageMultiplier).toFixed(),
|
|
251
|
+
tokensClaimable: new BigNumber(expectedTotalAllocation).multipliedBy(storageMultiplier).toFixed(),
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
description: 'not fully unlocked should only have claimable up to vested amount',
|
|
256
|
+
tokensClaimed: new BigNumber(0),
|
|
257
|
+
usdTotalWagered: partialWager,
|
|
258
|
+
expected: {
|
|
259
|
+
totalAllocation: new BigNumber(expectedTotalAllocation).multipliedBy(storageMultiplier).toFixed(),
|
|
260
|
+
tokensClaimable: new BigNumber('2249').multipliedBy(storageMultiplier).toFixed(),
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
description: 'should deduct claimed tokens from claimable amount',
|
|
265
|
+
tokensClaimed: new BigNumber(199).multipliedBy(storageMultiplier),
|
|
266
|
+
usdTotalWagered: partialWager,
|
|
267
|
+
expected: {
|
|
268
|
+
totalAllocation: new BigNumber(expectedTotalAllocation).multipliedBy(storageMultiplier).toFixed(),
|
|
269
|
+
tokensClaimable: new BigNumber('2050').multipliedBy(storageMultiplier).toFixed(),
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
];
|
|
273
|
+
|
|
274
|
+
for (const { description, tokensClaimed, usdTotalWagered, expected } of testCasesWithKyc2) {
|
|
275
|
+
it(`should calculate ${description}`, () => {
|
|
276
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
277
|
+
tokenAllocations: defaultAllocations.map(allo => {
|
|
278
|
+
return {
|
|
279
|
+
allocatedAmount: allo.allocatedAmount.multipliedBy(storageMultiplier),
|
|
280
|
+
usdWageredSnapshot: allo.usdWageredSnapshot.multipliedBy(storageMultiplier),
|
|
281
|
+
eventId: allo.eventId,
|
|
282
|
+
};
|
|
283
|
+
}),
|
|
284
|
+
tokensClaimed,
|
|
285
|
+
usdTotalWagered,
|
|
286
|
+
hasKyc2: true,
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
expect(result.totalAllocation.toFixed()).toBe(expected.totalAllocation);
|
|
290
|
+
expect(result.tokensClaimable.toFixed()).toBe(expected.tokensClaimable);
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
describe('multi-event overlap regression', () => {
|
|
296
|
+
// E1(snap=$1,000, 100t), E2(snap=$2,000, 200t), usdTotalWagered=$2,500
|
|
297
|
+
// rate=$20 → E1 vests 85, E2 vests 20 = 105 total
|
|
298
|
+
// rate=$10 → E1 vests 100 (capped), E2 vests 70 = 170 total
|
|
299
|
+
const overlapAllocations = [
|
|
300
|
+
{ allocatedAmount: new BigNumber(100), usdWageredSnapshot: new BigNumber(1000), eventId: 1 },
|
|
301
|
+
{ allocatedAmount: new BigNumber(200), usdWageredSnapshot: new BigNumber(2000), eventId: 2 },
|
|
302
|
+
];
|
|
303
|
+
const overlapWager = new BigNumber(2500);
|
|
304
|
+
|
|
305
|
+
it('non-KYC2: should not double-count wager consumed by earlier events', () => {
|
|
306
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
307
|
+
tokenAllocations: overlapAllocations,
|
|
308
|
+
tokensClaimed: new BigNumber(0),
|
|
309
|
+
usdTotalWagered: overlapWager,
|
|
310
|
+
hasKyc2: false,
|
|
311
|
+
});
|
|
312
|
+
expect(result.tokensClaimable.toString()).toBe('105');
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
it('KYC2: should correctly attribute wager to each event window', () => {
|
|
316
|
+
const result = AirdropCalculator.getTokenAllocationInfo({
|
|
317
|
+
tokenAllocations: overlapAllocations,
|
|
318
|
+
tokensClaimed: new BigNumber(0),
|
|
319
|
+
usdTotalWagered: overlapWager,
|
|
320
|
+
hasKyc2: true,
|
|
321
|
+
});
|
|
322
|
+
expect(result.tokensClaimable.toString()).toBe('170');
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
});
|