@marinade.finance/scoring 2.0.0 → 2.0.2
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/dist/computing/cluster.js +4 -5
- package/dist/computing/cluster.js.map +1 -1
- package/dist/computing/eligibility.d.ts +3 -3
- package/dist/computing/eligibility.js +18 -19
- package/dist/computing/eligibility.js.map +1 -1
- package/dist/computing/score.js +16 -18
- package/dist/computing/score.js.map +1 -1
- package/dist/computing/stake.js +8 -10
- package/dist/computing/stake.js.map +1 -1
- package/dist/computing/validators.js +12 -13
- package/dist/computing/validators.js.map +1 -1
- package/dist/providers/api-data.provider.js.map +1 -1
- package/dist/providers/file-data.provider.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/csv.js +18 -9
- package/dist/utils/csv.js.map +1 -1
- package/dist/utils/maths.d.ts +4 -1
- package/dist/utils/maths.js +15 -6
- package/dist/utils/maths.js.map +1 -1
- package/dist/utils/solana.js +1 -2
- package/dist/utils/solana.js.map +1 -1
- package/dist/utils/zip.js +1 -2
- package/dist/utils/zip.js.map +1 -1
- package/package.json +4 -4
|
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.computeBlockProduction = computeBlockProduction;
|
|
7
|
+
exports.computeTargetCreditsByEpoch = computeTargetCreditsByEpoch;
|
|
8
|
+
exports.computeConcentrations = computeConcentrations;
|
|
9
|
+
exports.computeClusterInfo = computeClusterInfo;
|
|
7
10
|
const maths_1 = require("../utils/maths");
|
|
8
11
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
9
12
|
function computeBlockProduction(validators, startEpoch, endEpoch) {
|
|
@@ -30,7 +33,6 @@ function computeBlockProduction(validators, startEpoch, endEpoch) {
|
|
|
30
33
|
stdDev: (0, maths_1.stdDev)(blockProductions),
|
|
31
34
|
};
|
|
32
35
|
}
|
|
33
|
-
exports.computeBlockProduction = computeBlockProduction;
|
|
34
36
|
function computeTargetCreditsByEpoch(validators) {
|
|
35
37
|
const sumOfWeightedCreditsPerEpoch = new Map();
|
|
36
38
|
const sumOfWeightsPerEpoch = new Map();
|
|
@@ -53,7 +55,6 @@ function computeTargetCreditsByEpoch(validators) {
|
|
|
53
55
|
});
|
|
54
56
|
return result;
|
|
55
57
|
}
|
|
56
|
-
exports.computeTargetCreditsByEpoch = computeTargetCreditsByEpoch;
|
|
57
58
|
function computeConcentrations(validators, epoch) {
|
|
58
59
|
let total = 0;
|
|
59
60
|
const city = new Map();
|
|
@@ -81,7 +82,6 @@ function computeConcentrations(validators, epoch) {
|
|
|
81
82
|
}
|
|
82
83
|
return { city, country, aso };
|
|
83
84
|
}
|
|
84
|
-
exports.computeConcentrations = computeConcentrations;
|
|
85
85
|
function computeClusterInfo(validators, basicEligibilityEpochs, lastEpoch) {
|
|
86
86
|
const { mean: meanBlockProduction, stdDev: stdDevBlockProduction } = computeBlockProduction(validators, lastEpoch - basicEligibilityEpochs, lastEpoch - 1);
|
|
87
87
|
return {
|
|
@@ -91,5 +91,4 @@ function computeClusterInfo(validators, basicEligibilityEpochs, lastEpoch) {
|
|
|
91
91
|
stdDevBlockProductionOverBasicEligibilityPeriod: stdDevBlockProduction,
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
|
-
exports.computeClusterInfo = computeClusterInfo;
|
|
95
94
|
//# sourceMappingURL=cluster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/computing/cluster.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/computing/cluster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Bonds } from '../dto/bonds.dto';
|
|
2
2
|
import { ClusterInfo } from '../dto/cluster.dto';
|
|
3
3
|
import { EligibilityConfig, EvaluationResult, Issue, ValidatorEligibility, ValidatorsEligibilities } from '../dto/eligibility.dto';
|
|
4
|
-
import { ScoreDto, Scores
|
|
4
|
+
import { ScoreDto, Scores } from '../dto/scoring.dto';
|
|
5
5
|
import { AggregatedValidator, AggregatedValidators } from '../dto/validators.dto';
|
|
6
6
|
export declare function evalLowCreditsIssue(validator: AggregatedValidator, epochIndex: number, eligibilityConfig: EligibilityConfig, clusterInfo: ClusterInfo): Issue | null;
|
|
7
7
|
export declare function evalLowExternalStakeIssue(validator: AggregatedValidator, epochIndex: number, eligibilityConfig: EligibilityConfig): Issue | undefined;
|
|
@@ -15,5 +15,5 @@ export declare function evalIssues(issuesCollection: Issue[][], epochs: number):
|
|
|
15
15
|
export declare function isBasicEligible(issuesCollection: Issue[][], eligibilityConfig: EligibilityConfig): boolean;
|
|
16
16
|
export declare function isBonusEligible(issuesCollection: Issue[][], eligibilityConfig: EligibilityConfig): boolean;
|
|
17
17
|
export declare function getIssuesCollection(clusterInfo: ClusterInfo, aggregatedValidator: AggregatedValidator, bonds: Bonds, score: ScoreDto, eligibilityConfig: EligibilityConfig): Issue[][];
|
|
18
|
-
export declare function computeValidatorEligibility(clusterInfo: ClusterInfo, aggregatedValidator: AggregatedValidator, bonds: Bonds, scores: ScoreDto, eligibilityConfig: EligibilityConfig
|
|
19
|
-
export declare function computeValidatorsEligibilities(clusterInfo: ClusterInfo, scores: Scores, aggregatedValidators: AggregatedValidators, bonds: Bonds, eligibilityConfig: EligibilityConfig
|
|
18
|
+
export declare function computeValidatorEligibility(clusterInfo: ClusterInfo, aggregatedValidator: AggregatedValidator, bonds: Bonds, scores: ScoreDto, eligibilityConfig: EligibilityConfig): ValidatorEligibility;
|
|
19
|
+
export declare function computeValidatorsEligibilities(clusterInfo: ClusterInfo, scores: Scores, aggregatedValidators: AggregatedValidators, bonds: Bonds, eligibilityConfig: EligibilityConfig): ValidatorsEligibilities;
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.evalLowCreditsIssue = evalLowCreditsIssue;
|
|
4
|
+
exports.evalLowExternalStakeIssue = evalLowExternalStakeIssue;
|
|
5
|
+
exports.evalBlacklistIssue = evalBlacklistIssue;
|
|
6
|
+
exports.evalHighCommissionIssue = evalHighCommissionIssue;
|
|
7
|
+
exports.evalScoreIssue = evalScoreIssue;
|
|
8
|
+
exports.evalBondIssue = evalBondIssue;
|
|
9
|
+
exports.getValidatorIssuesInEpoch = getValidatorIssuesInEpoch;
|
|
10
|
+
exports.evalIssuesInEpoch = evalIssuesInEpoch;
|
|
11
|
+
exports.evalIssues = evalIssues;
|
|
12
|
+
exports.isBasicEligible = isBasicEligible;
|
|
13
|
+
exports.isBonusEligible = isBonusEligible;
|
|
14
|
+
exports.getIssuesCollection = getIssuesCollection;
|
|
15
|
+
exports.computeValidatorEligibility = computeValidatorEligibility;
|
|
16
|
+
exports.computeValidatorsEligibilities = computeValidatorsEligibilities;
|
|
4
17
|
const validators_1 = require("./validators");
|
|
5
18
|
const solana_1 = require("../utils/solana");
|
|
6
|
-
const CAP_BOND_FUNDING_MULTIPLIER =
|
|
19
|
+
const CAP_BOND_FUNDING_MULTIPLIER = 10_000;
|
|
7
20
|
function evalLowCreditsIssue(validator, epochIndex, eligibilityConfig, clusterInfo) {
|
|
8
21
|
if (!validator.epochs[epochIndex]) {
|
|
9
22
|
return null;
|
|
@@ -22,7 +35,6 @@ function evalLowCreditsIssue(validator, epochIndex, eligibilityConfig, clusterIn
|
|
|
22
35
|
}
|
|
23
36
|
return null;
|
|
24
37
|
}
|
|
25
|
-
exports.evalLowCreditsIssue = evalLowCreditsIssue;
|
|
26
38
|
function evalLowExternalStakeIssue(validator, epochIndex, eligibilityConfig) {
|
|
27
39
|
const externalStake = validator.externalStake[epochIndex];
|
|
28
40
|
if (!externalStake) {
|
|
@@ -33,14 +45,12 @@ function evalLowExternalStakeIssue(validator, epochIndex, eligibilityConfig) {
|
|
|
33
45
|
}
|
|
34
46
|
return undefined;
|
|
35
47
|
}
|
|
36
|
-
exports.evalLowExternalStakeIssue = evalLowExternalStakeIssue;
|
|
37
48
|
function evalBlacklistIssue(validator) {
|
|
38
49
|
if (validator.blacklisted) {
|
|
39
50
|
return { type: "BLACKLIST", message: 'Validator is blacklisted' };
|
|
40
51
|
}
|
|
41
52
|
return undefined;
|
|
42
53
|
}
|
|
43
|
-
exports.evalBlacklistIssue = evalBlacklistIssue;
|
|
44
54
|
function evalHighCommissionIssue(validator, epochIndex, eligibilityConfig) {
|
|
45
55
|
const commission = validator.commission[epochIndex];
|
|
46
56
|
if (!commission) {
|
|
@@ -51,21 +61,18 @@ function evalHighCommissionIssue(validator, epochIndex, eligibilityConfig) {
|
|
|
51
61
|
}
|
|
52
62
|
return undefined;
|
|
53
63
|
}
|
|
54
|
-
exports.evalHighCommissionIssue = evalHighCommissionIssue;
|
|
55
64
|
function evalScoreIssue(epochIndex, eligibilityConfig, { concentrationScore }) {
|
|
56
65
|
if (epochIndex === 0 && concentrationScore < eligibilityConfig.minScore) {
|
|
57
66
|
return { type: "SCORE", message: `Concentration Score: ${concentrationScore}` };
|
|
58
67
|
}
|
|
59
68
|
return undefined;
|
|
60
69
|
}
|
|
61
|
-
exports.evalScoreIssue = evalScoreIssue;
|
|
62
70
|
function evalBondIssue(validator, bonds) {
|
|
63
71
|
if (!(validator.voteAccount in bonds)) {
|
|
64
72
|
return { type: "NO_BOND", message: 'Validator has no bond' };
|
|
65
73
|
}
|
|
66
74
|
return undefined;
|
|
67
75
|
}
|
|
68
|
-
exports.evalBondIssue = evalBondIssue;
|
|
69
76
|
function getValidatorIssuesInEpoch(validator, bonds, epochIndex, eligibilityConfig, clusterInfo, score) {
|
|
70
77
|
if (!validator.dataAvailable[epochIndex]) {
|
|
71
78
|
return [{ type: "NO_DATA", message: `No data for validator in epoch ${validator.epochs[epochIndex]}` }];
|
|
@@ -79,7 +86,6 @@ function getValidatorIssuesInEpoch(validator, bonds, epochIndex, eligibilityConf
|
|
|
79
86
|
evalBondIssue(validator, bonds),
|
|
80
87
|
].filter(Boolean);
|
|
81
88
|
}
|
|
82
|
-
exports.getValidatorIssuesInEpoch = getValidatorIssuesInEpoch;
|
|
83
89
|
function evalIssuesInEpoch(issues) {
|
|
84
90
|
let criticals = 0;
|
|
85
91
|
let warnings = 0;
|
|
@@ -109,7 +115,6 @@ function evalIssuesInEpoch(issues) {
|
|
|
109
115
|
});
|
|
110
116
|
return { criticals, warnings };
|
|
111
117
|
}
|
|
112
|
-
exports.evalIssuesInEpoch = evalIssuesInEpoch;
|
|
113
118
|
function evalIssues(issuesCollection, epochs) {
|
|
114
119
|
let totalCriticals = 0;
|
|
115
120
|
let totalWarnings = 0;
|
|
@@ -123,23 +128,19 @@ function evalIssues(issuesCollection, epochs) {
|
|
|
123
128
|
}
|
|
124
129
|
return { criticals: totalCriticals, warnings: totalWarnings };
|
|
125
130
|
}
|
|
126
|
-
exports.evalIssues = evalIssues;
|
|
127
131
|
function isBasicEligible(issuesCollection, eligibilityConfig) {
|
|
128
132
|
const { criticals, warnings } = evalIssues(issuesCollection, eligibilityConfig.basicEligibilityEpochs + 1);
|
|
129
133
|
return criticals === 0 && warnings <= eligibilityConfig.maxWarnings;
|
|
130
134
|
}
|
|
131
|
-
exports.isBasicEligible = isBasicEligible;
|
|
132
135
|
function isBonusEligible(issuesCollection, eligibilityConfig) {
|
|
133
136
|
const totalEpochs = eligibilityConfig.basicEligibilityEpochs + eligibilityConfig.bonusEligibilityExtraEpochs + 1;
|
|
134
137
|
const { criticals, warnings } = evalIssues(issuesCollection, totalEpochs);
|
|
135
138
|
return criticals === 0 && warnings <= eligibilityConfig.maxWarnings;
|
|
136
139
|
}
|
|
137
|
-
exports.isBonusEligible = isBonusEligible;
|
|
138
140
|
function getIssuesCollection(clusterInfo, aggregatedValidator, bonds, score, eligibilityConfig) {
|
|
139
141
|
return Array.from({ length: eligibilityConfig.basicEligibilityEpochs + eligibilityConfig.bonusEligibilityExtraEpochs + 1 }, (_, epochIndex) => getValidatorIssuesInEpoch(aggregatedValidator, bonds, epochIndex, eligibilityConfig, clusterInfo, score));
|
|
140
142
|
}
|
|
141
|
-
|
|
142
|
-
function computeValidatorEligibility(clusterInfo, aggregatedValidator, bonds, scores, eligibilityConfig, scoringConfig) {
|
|
143
|
+
function computeValidatorEligibility(clusterInfo, aggregatedValidator, bonds, scores, eligibilityConfig) {
|
|
143
144
|
const issuesCollection = getIssuesCollection(clusterInfo, aggregatedValidator, bonds, scores, eligibilityConfig);
|
|
144
145
|
const minExternalStake = (0, validators_1.selectExternalStakeMin)(aggregatedValidator, eligibilityConfig.basicEligibilityEpochs);
|
|
145
146
|
const capFromBond = Number.parseFloat((0, solana_1.lamportsToSol)((bonds[aggregatedValidator.voteAccount] ?? 0).toString())) * CAP_BOND_FUNDING_MULTIPLIER;
|
|
@@ -151,16 +152,14 @@ function computeValidatorEligibility(clusterInfo, aggregatedValidator, bonds, sc
|
|
|
151
152
|
capFromExternalStake: minExternalStake * (eligibilityConfig.maxStakeShare / (1 - eligibilityConfig.maxStakeShare)),
|
|
152
153
|
};
|
|
153
154
|
}
|
|
154
|
-
|
|
155
|
-
function computeValidatorsEligibilities(clusterInfo, scores, aggregatedValidators, bonds, eligibilityConfig, scoringConfig) {
|
|
155
|
+
function computeValidatorsEligibilities(clusterInfo, scores, aggregatedValidators, bonds, eligibilityConfig) {
|
|
156
156
|
const result = {};
|
|
157
157
|
for (const [voteAccount, validator] of Object.entries(aggregatedValidators)) {
|
|
158
158
|
if (!scores[voteAccount]) {
|
|
159
159
|
continue;
|
|
160
160
|
}
|
|
161
|
-
result[voteAccount] = computeValidatorEligibility(clusterInfo, validator, bonds, scores[voteAccount], eligibilityConfig
|
|
161
|
+
result[voteAccount] = computeValidatorEligibility(clusterInfo, validator, bonds, scores[voteAccount], eligibilityConfig);
|
|
162
162
|
}
|
|
163
163
|
return result;
|
|
164
164
|
}
|
|
165
|
-
exports.computeValidatorsEligibilities = computeValidatorsEligibilities;
|
|
166
165
|
//# sourceMappingURL=eligibility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/computing/eligibility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eligibility.js","sourceRoot":"","sources":["../../src/computing/eligibility.ts"],"names":[],"mappings":"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"}
|
package/dist/computing/score.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.selectVariables = selectVariables;
|
|
4
|
+
exports.computeValidatorScore = computeValidatorScore;
|
|
5
|
+
exports.computeValidatorsScores = computeValidatorsScores;
|
|
6
|
+
exports.scoreTooltipCredits = scoreTooltipCredits;
|
|
7
|
+
exports.scoreTooltipBlockProduction = scoreTooltipBlockProduction;
|
|
8
|
+
exports.scoreTooltipCommissionInflation = scoreTooltipCommissionInflation;
|
|
9
|
+
exports.scoreTooltipCommissionMEV = scoreTooltipCommissionMEV;
|
|
10
|
+
exports.scoreTooltipCountryStakeConcentration = scoreTooltipCountryStakeConcentration;
|
|
11
|
+
exports.scoreTooltipCityStakeConcentration = scoreTooltipCityStakeConcentration;
|
|
12
|
+
exports.scoreTooltipNodeStake = scoreTooltipNodeStake;
|
|
13
|
+
exports.scoreTooltipASOStakeConcentration = scoreTooltipASOStakeConcentration;
|
|
14
|
+
exports.getScoreTooltipBuilders = getScoreTooltipBuilders;
|
|
15
|
+
exports.getDefaultFormulas = getDefaultFormulas;
|
|
16
|
+
exports.getDefaultWeights = getDefaultWeights;
|
|
17
|
+
exports.orderByEligibiltyAndScore = orderByEligibiltyAndScore;
|
|
5
18
|
const maths_1 = require("../utils/maths");
|
|
6
19
|
const zip_1 = require("../utils/zip");
|
|
7
20
|
const validators_1 = require("./validators");
|
|
@@ -19,7 +32,6 @@ function selectVariables(clusterInfo, aggregatedValidator, scoreConfig) {
|
|
|
19
32
|
node_stake_last: (0, validators_1.selectNodeStake)(aggregatedValidator),
|
|
20
33
|
};
|
|
21
34
|
}
|
|
22
|
-
exports.selectVariables = selectVariables;
|
|
23
35
|
function computeValidatorScore(clusterInfo, aggregatedValidator, formulas, weights, scoreConfig) {
|
|
24
36
|
const scoreErrors = [];
|
|
25
37
|
const scores = [];
|
|
@@ -33,7 +45,7 @@ function computeValidatorScore(clusterInfo, aggregatedValidator, formulas, weigh
|
|
|
33
45
|
for (const [formula, weight, tooltipBuilder] of (0, zip_1.zip)(formulas, weights, getScoreTooltipBuilders())) {
|
|
34
46
|
let score = 0;
|
|
35
47
|
values.push(0);
|
|
36
|
-
score =
|
|
48
|
+
score = (0, maths_1.evaluateNumber)(formula, variables);
|
|
37
49
|
scoreErrors.push(false);
|
|
38
50
|
totalWeight += weight;
|
|
39
51
|
totalScore += weight * score;
|
|
@@ -53,7 +65,6 @@ function computeValidatorScore(clusterInfo, aggregatedValidator, formulas, weigh
|
|
|
53
65
|
tooltips,
|
|
54
66
|
};
|
|
55
67
|
}
|
|
56
|
-
exports.computeValidatorScore = computeValidatorScore;
|
|
57
68
|
function computeValidatorsScores(clusterInfo, aggregatedValidators, formulas, weights, scoreConfig) {
|
|
58
69
|
const result = {};
|
|
59
70
|
for (const [voteAccount, aggregatedValidator] of Object.entries(aggregatedValidators)) {
|
|
@@ -61,7 +72,6 @@ function computeValidatorsScores(clusterInfo, aggregatedValidators, formulas, we
|
|
|
61
72
|
}
|
|
62
73
|
return result;
|
|
63
74
|
}
|
|
64
|
-
exports.computeValidatorsScores = computeValidatorsScores;
|
|
65
75
|
function scoreTooltipCredits(validator, clusterInfo) {
|
|
66
76
|
return `Credits: ${validator.credits.slice(1).map((credits, e) => {
|
|
67
77
|
const epoch = validator.epochs[e + 1];
|
|
@@ -74,7 +84,6 @@ function scoreTooltipCredits(validator, clusterInfo) {
|
|
|
74
84
|
}
|
|
75
85
|
}).join(', ')}`;
|
|
76
86
|
}
|
|
77
|
-
exports.scoreTooltipCredits = scoreTooltipCredits;
|
|
78
87
|
function scoreTooltipBlockProduction(validator, _clusterInfo) {
|
|
79
88
|
return `Block production: ${validator.blocksProduced.map((blocksProduced, e) => {
|
|
80
89
|
const leaderSlot = validator.leaderSlots[e];
|
|
@@ -86,31 +95,24 @@ function scoreTooltipBlockProduction(validator, _clusterInfo) {
|
|
|
86
95
|
}
|
|
87
96
|
}).join(', ')}`;
|
|
88
97
|
}
|
|
89
|
-
exports.scoreTooltipBlockProduction = scoreTooltipBlockProduction;
|
|
90
98
|
function scoreTooltipCommissionInflation(validator, _clusterInfo) {
|
|
91
99
|
return `Inflation commission: ${validator.commission.map(c => `${c}%`).join(', ')}`;
|
|
92
100
|
}
|
|
93
|
-
exports.scoreTooltipCommissionInflation = scoreTooltipCommissionInflation;
|
|
94
101
|
function scoreTooltipCommissionMEV(validator, _clusterInfo) {
|
|
95
102
|
return `MEV commission: ${validator.mevCommission} %`;
|
|
96
103
|
}
|
|
97
|
-
exports.scoreTooltipCommissionMEV = scoreTooltipCommissionMEV;
|
|
98
104
|
function scoreTooltipCountryStakeConcentration(validator, _clusterInfo) {
|
|
99
105
|
return `Country: ${validator.country}`;
|
|
100
106
|
}
|
|
101
|
-
exports.scoreTooltipCountryStakeConcentration = scoreTooltipCountryStakeConcentration;
|
|
102
107
|
function scoreTooltipCityStakeConcentration(validator, _clusterInfo) {
|
|
103
108
|
return `City: ${validator.city}`;
|
|
104
109
|
}
|
|
105
|
-
exports.scoreTooltipCityStakeConcentration = scoreTooltipCityStakeConcentration;
|
|
106
110
|
function scoreTooltipNodeStake(validator, _clusterInfo) {
|
|
107
111
|
return `Stake of the node: ${Math.round(validator.stake[0] ?? 0).toLocaleString()} SOL`;
|
|
108
112
|
}
|
|
109
|
-
exports.scoreTooltipNodeStake = scoreTooltipNodeStake;
|
|
110
113
|
function scoreTooltipASOStakeConcentration(validator, _clusterInfo) {
|
|
111
114
|
return `ASO: ${validator.aso}`;
|
|
112
115
|
}
|
|
113
|
-
exports.scoreTooltipASOStakeConcentration = scoreTooltipASOStakeConcentration;
|
|
114
116
|
function getScoreTooltipBuilders() {
|
|
115
117
|
return [
|
|
116
118
|
scoreTooltipCredits,
|
|
@@ -123,7 +125,6 @@ function getScoreTooltipBuilders() {
|
|
|
123
125
|
scoreTooltipNodeStake,
|
|
124
126
|
];
|
|
125
127
|
}
|
|
126
|
-
exports.getScoreTooltipBuilders = getScoreTooltipBuilders;
|
|
127
128
|
function getDefaultFormulas(scoringConfig) {
|
|
128
129
|
return [
|
|
129
130
|
scoringConfig.formulaVoteCredits,
|
|
@@ -136,7 +137,6 @@ function getDefaultFormulas(scoringConfig) {
|
|
|
136
137
|
scoringConfig.formulaStakeConcentrationNode,
|
|
137
138
|
];
|
|
138
139
|
}
|
|
139
|
-
exports.getDefaultFormulas = getDefaultFormulas;
|
|
140
140
|
function getDefaultWeights(scoringConfig) {
|
|
141
141
|
return [
|
|
142
142
|
scoringConfig.weightVoteCredits,
|
|
@@ -149,7 +149,6 @@ function getDefaultWeights(scoringConfig) {
|
|
|
149
149
|
scoringConfig.weightStakeConcentrationNode,
|
|
150
150
|
];
|
|
151
151
|
}
|
|
152
|
-
exports.getDefaultWeights = getDefaultWeights;
|
|
153
152
|
function orderByEligibiltyAndScore(scores, eligibilities) {
|
|
154
153
|
const voteAccounts = Object.keys(scores);
|
|
155
154
|
voteAccounts.sort((a, b) => {
|
|
@@ -163,5 +162,4 @@ function orderByEligibiltyAndScore(scores, eligibilities) {
|
|
|
163
162
|
});
|
|
164
163
|
return voteAccounts;
|
|
165
164
|
}
|
|
166
|
-
exports.orderByEligibiltyAndScore = orderByEligibiltyAndScore;
|
|
167
165
|
//# sourceMappingURL=score.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/computing/score.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/computing/score.ts"],"names":[],"mappings":"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"}
|
package/dist/computing/stake.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.removeFromVotes = removeFromVotes;
|
|
4
|
+
exports.processVotesAndCalculateTVLs = processVotesAndCalculateTVLs;
|
|
5
|
+
exports.filterEligibleValidators = filterEligibleValidators;
|
|
6
|
+
exports.initStakes = initStakes;
|
|
7
|
+
exports.computeStakesForValidators = computeStakesForValidators;
|
|
8
|
+
exports.computeValidatorsStakes = computeValidatorsStakes;
|
|
5
9
|
const maths_1 = require("../utils/maths");
|
|
6
10
|
function removeFromVotes(votes, toRemove) {
|
|
7
11
|
const votesCopy = { ...votes };
|
|
8
12
|
delete votesCopy[toRemove];
|
|
9
13
|
return votesCopy;
|
|
10
14
|
}
|
|
11
|
-
exports.removeFromVotes = removeFromVotes;
|
|
12
15
|
function processVotesAndCalculateTVLs(mSolVotes, veMndeVotes, stakesConfig, scoringConfig) {
|
|
13
16
|
const updatedVeMndeVotes = removeFromVotes({ ...veMndeVotes }, scoringConfig.DS_PUBKEY);
|
|
14
17
|
const veMndeVotesForDS = veMndeVotes[scoringConfig.DS_PUBKEY] ?? 0;
|
|
@@ -30,11 +33,9 @@ function processVotesAndCalculateTVLs(mSolVotes, veMndeVotes, stakesConfig, scor
|
|
|
30
33
|
totalTvl: stakesConfig.tvl
|
|
31
34
|
};
|
|
32
35
|
}
|
|
33
|
-
exports.processVotesAndCalculateTVLs = processVotesAndCalculateTVLs;
|
|
34
36
|
function filterEligibleValidators(aggregatedValidators, eligibilities) {
|
|
35
37
|
return Object.keys(aggregatedValidators).filter(voteAccount => eligibilities[voteAccount]?.basicEligibility);
|
|
36
38
|
}
|
|
37
|
-
exports.filterEligibleValidators = filterEligibleValidators;
|
|
38
39
|
function initStakes(eligibleValidators) {
|
|
39
40
|
const result = {};
|
|
40
41
|
for (const voteAccount of eligibleValidators) {
|
|
@@ -51,7 +52,6 @@ function initStakes(eligibleValidators) {
|
|
|
51
52
|
}
|
|
52
53
|
return result;
|
|
53
54
|
}
|
|
54
|
-
exports.initStakes = initStakes;
|
|
55
55
|
function computeStakesForValidators(params) {
|
|
56
56
|
let updatedTotalMSolVotes = params.totalMsolVotes;
|
|
57
57
|
let updatedTotalVeMndeVotes = params.totalVeMndeVotes;
|
|
@@ -73,7 +73,7 @@ function computeStakesForValidators(params) {
|
|
|
73
73
|
if (params.eligibilities[voteAccount].bonusEligibility) {
|
|
74
74
|
blocks += params.stakesConfig.stakeBlocksFromBonus;
|
|
75
75
|
}
|
|
76
|
-
blocks +=
|
|
76
|
+
blocks += (0, maths_1.evaluateNumber)(params.stakesConfig.formulaStakeBlocksFromScore, { ...params.stakingVariables, score: params.scores[voteAccount].score });
|
|
77
77
|
}
|
|
78
78
|
const algoStake = Math.round(Math.min(params.blockSize * blocks, Math.max(params.algoTvl - algoStakeDistributed, 0)));
|
|
79
79
|
const mSolStake = updatedTotalMSolVotes > 0 ? Math.round((params.mSolVotes[voteAccount] ?? 0) / updatedTotalMSolVotes * Math.max(params.mSolTvl - mSolStakeDistributedBeforeRound, 0)) : 0;
|
|
@@ -151,7 +151,6 @@ function computeStakesForValidators(params) {
|
|
|
151
151
|
}
|
|
152
152
|
return stakes;
|
|
153
153
|
}
|
|
154
|
-
exports.computeStakesForValidators = computeStakesForValidators;
|
|
155
154
|
function computeValidatorsStakes(aggregatedValidators, scores, eligibilities, stakesConfig, scoringConfig, mSolVotes, veMndeVotes) {
|
|
156
155
|
let updatedMSolVotes = { ...mSolVotes };
|
|
157
156
|
let updatedVeMndeVotes = { ...veMndeVotes };
|
|
@@ -161,7 +160,7 @@ function computeValidatorsStakes(aggregatedValidators, scores, eligibilities, st
|
|
|
161
160
|
const algoTvl = stakesConfig.tvl - processedVotesAndTvls.mSolTvl - processedVotesAndTvls.veMndeTvl;
|
|
162
161
|
const eligibleValidators = filterEligibleValidators(aggregatedValidators, eligibilities);
|
|
163
162
|
const stakingVariables = { tvl: algoTvl };
|
|
164
|
-
const blockSize =
|
|
163
|
+
const blockSize = (0, maths_1.evaluateNumber)(stakesConfig.formulaStakeBlockSize, stakingVariables);
|
|
165
164
|
Object.keys(aggregatedValidators).filter((v) => !eligibilities[v]?.basicEligibility).forEach((voteAccount) => {
|
|
166
165
|
updatedVeMndeVotes = removeFromVotes(updatedVeMndeVotes, voteAccount);
|
|
167
166
|
updatedMSolVotes = removeFromVotes(updatedMSolVotes, voteAccount);
|
|
@@ -189,5 +188,4 @@ function computeValidatorsStakes(aggregatedValidators, scores, eligibilities, st
|
|
|
189
188
|
blockSize: blockSize
|
|
190
189
|
});
|
|
191
190
|
}
|
|
192
|
-
exports.computeValidatorsStakes = computeValidatorsStakes;
|
|
193
191
|
//# sourceMappingURL=stake.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stake.js","sourceRoot":"","sources":["../../src/computing/stake.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stake.js","sourceRoot":"","sources":["../../src/computing/stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.aggregateValidatorData = aggregateValidatorData;
|
|
4
|
+
exports.aggregateValidatorsData = aggregateValidatorsData;
|
|
5
|
+
exports.getMaxEpoch = getMaxEpoch;
|
|
6
|
+
exports.selectExternalStakeMin = selectExternalStakeMin;
|
|
7
|
+
exports.selectCreditsPctMean = selectCreditsPctMean;
|
|
8
|
+
exports.selectBlockProductionMean = selectBlockProductionMean;
|
|
9
|
+
exports.selectCommissionInflationMax = selectCommissionInflationMax;
|
|
10
|
+
exports.selectCommissionMEV = selectCommissionMEV;
|
|
11
|
+
exports.selectCountryStakeConcentration = selectCountryStakeConcentration;
|
|
12
|
+
exports.selectCityStakeConcentration = selectCityStakeConcentration;
|
|
13
|
+
exports.selectASOStakeConcentration = selectASOStakeConcentration;
|
|
14
|
+
exports.selectNodeStake = selectNodeStake;
|
|
4
15
|
const maths_1 = require("../utils/maths");
|
|
5
16
|
function aggregateValidatorData(validator, mevRecord, blacklist, firstEpoch, lastEpoch) {
|
|
6
17
|
const currentMarinadeStake = Number(validator.epochStats[lastEpoch]?.marinade_native_stake || 0) / 1e9 + Number(validator.epochStats[lastEpoch]?.marinade_stake || 0) / 1e9;
|
|
@@ -49,7 +60,6 @@ function aggregateValidatorData(validator, mevRecord, blacklist, firstEpoch, las
|
|
|
49
60
|
version: validator.version
|
|
50
61
|
};
|
|
51
62
|
}
|
|
52
|
-
exports.aggregateValidatorData = aggregateValidatorData;
|
|
53
63
|
async function aggregateValidatorsData(validators, basicEligibilityEpochs, bonusEligibilityExtraEpochs, jitoMevRecords, blacklist) {
|
|
54
64
|
const lastEpoch = getMaxEpoch(validators);
|
|
55
65
|
const firstEpoch = lastEpoch - basicEligibilityEpochs - bonusEligibilityExtraEpochs;
|
|
@@ -66,7 +76,6 @@ async function aggregateValidatorsData(validators, basicEligibilityEpochs, bonus
|
|
|
66
76
|
}
|
|
67
77
|
return result;
|
|
68
78
|
}
|
|
69
|
-
exports.aggregateValidatorsData = aggregateValidatorsData;
|
|
70
79
|
function getMaxEpoch(validators) {
|
|
71
80
|
return validators.reduce((maxEpoch, validator) => {
|
|
72
81
|
const validatorMaxEpoch = validator.epoch_stats.reduce((max, { epoch }) => {
|
|
@@ -75,45 +84,35 @@ function getMaxEpoch(validators) {
|
|
|
75
84
|
return Math.max(maxEpoch, validatorMaxEpoch);
|
|
76
85
|
}, 0);
|
|
77
86
|
}
|
|
78
|
-
exports.getMaxEpoch = getMaxEpoch;
|
|
79
87
|
function selectExternalStakeMin(validator, fullEpochs) {
|
|
80
88
|
if (validator.externalStake.length === 0) {
|
|
81
89
|
throw new Error('Validator has no external stake data.');
|
|
82
90
|
}
|
|
83
91
|
return Math.min(...validator.externalStake.slice(0, fullEpochs + 1));
|
|
84
92
|
}
|
|
85
|
-
exports.selectExternalStakeMin = selectExternalStakeMin;
|
|
86
93
|
function selectCreditsPctMean(validator, clusterInfo, fullEpochs) {
|
|
87
94
|
return (0, maths_1.mean)(validator.epochs.slice(1, fullEpochs + 1).map((epoch, fullEpochIndex) => (validator.credits[fullEpochIndex + 1] ?? 0) / (clusterInfo.targetCreditsByEpoch.get(epoch) ?? 1)));
|
|
88
95
|
}
|
|
89
|
-
exports.selectCreditsPctMean = selectCreditsPctMean;
|
|
90
96
|
function selectBlockProductionMean(validator, fullEpochs) {
|
|
91
97
|
const leaderSlots = (0, maths_1.sum)(validator.leaderSlots.slice(1, fullEpochs + 1));
|
|
92
98
|
return leaderSlots === 0 ? 1 : (0, maths_1.sum)(validator.blocksProduced.slice(1, fullEpochs + 1)) / leaderSlots;
|
|
93
99
|
}
|
|
94
|
-
exports.selectBlockProductionMean = selectBlockProductionMean;
|
|
95
100
|
function selectCommissionInflationMax(validator, epochs) {
|
|
96
101
|
return Math.max(...validator.commission.slice(0, epochs));
|
|
97
102
|
}
|
|
98
|
-
exports.selectCommissionInflationMax = selectCommissionInflationMax;
|
|
99
103
|
function selectCommissionMEV(validator) {
|
|
100
104
|
return validator.mevCommission;
|
|
101
105
|
}
|
|
102
|
-
exports.selectCommissionMEV = selectCommissionMEV;
|
|
103
106
|
function selectCountryStakeConcentration(validator, clusterInfo) {
|
|
104
107
|
return clusterInfo.country.get(validator.country ?? '???') ?? 0;
|
|
105
108
|
}
|
|
106
|
-
exports.selectCountryStakeConcentration = selectCountryStakeConcentration;
|
|
107
109
|
function selectCityStakeConcentration(validator, clusterInfo) {
|
|
108
110
|
return clusterInfo.city.get(validator.city ?? '???') ?? 0;
|
|
109
111
|
}
|
|
110
|
-
exports.selectCityStakeConcentration = selectCityStakeConcentration;
|
|
111
112
|
function selectASOStakeConcentration(validator, clusterInfo) {
|
|
112
113
|
return clusterInfo.aso.get(validator.aso ?? '???') ?? 0;
|
|
113
114
|
}
|
|
114
|
-
exports.selectASOStakeConcentration = selectASOStakeConcentration;
|
|
115
115
|
function selectNodeStake(validator) {
|
|
116
116
|
return validator.stake[0] ?? 0;
|
|
117
117
|
}
|
|
118
|
-
exports.selectNodeStake = selectNodeStake;
|
|
119
118
|
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/computing/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/computing/validators.ts"],"names":[],"mappings":"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"}
|