@lodestar/state-transition 1.29.0-dev.a78dbc96dd → 1.29.0-dev.d203cc3a06
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/block/processEth1Data.js +4 -4
- package/lib/block/processEth1Data.js.map +1 -1
- package/lib/cache/epochTransitionCache.js +17 -15
- package/lib/cache/epochTransitionCache.js.map +1 -1
- package/lib/epoch/getRewardsAndPenalties.js +10 -3
- package/lib/epoch/getRewardsAndPenalties.js.map +1 -1
- package/lib/epoch/processInactivityUpdates.js +6 -1
- package/lib/epoch/processInactivityUpdates.js.map +1 -1
- package/lib/epoch/processRewardsAndPenalties.js +6 -1
- package/lib/epoch/processRewardsAndPenalties.js.map +1 -1
- package/lib/util/balance.js +4 -4
- package/lib/util/balance.js.map +1 -1
- package/package.json +9 -9
|
@@ -35,12 +35,12 @@ export function becomesNewEth1Data(state, newEth1Data) {
|
|
|
35
35
|
// Then isEqualEth1DataView compares cached roots (HashObject as of Jan 2022) which is much cheaper
|
|
36
36
|
// than doing structural equality, which requires tree -> value conversions
|
|
37
37
|
let sameVotesCount = 0;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (isEqualEth1DataView(
|
|
38
|
+
// biome-ignore lint/complexity/noForEach: ssz api
|
|
39
|
+
state.eth1DataVotes.forEach((eth1DataVote) => {
|
|
40
|
+
if (isEqualEth1DataView(eth1DataVote, newEth1Data)) {
|
|
41
41
|
sameVotesCount++;
|
|
42
42
|
}
|
|
43
|
-
}
|
|
43
|
+
});
|
|
44
44
|
// The +1 is to account for the `eth1Data` supplied to the function.
|
|
45
45
|
if ((sameVotesCount + 1) * 2 > SLOTS_PER_ETH1_VOTING_PERIOD) {
|
|
46
46
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processEth1Data.js","sourceRoot":"","sources":["../../src/block/processEth1Data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,6BAA6B,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAG5C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgC,EAAE,QAAyB;IACzF,wDAAwD;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA0B,EAC1B,WAAwD;IAExD,MAAM,4BAA4B,GAAG,6BAA6B,GAAG,eAAe,CAAC;IAErF,uFAAuF;IACvF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,4BAA4B,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oGAAoG;IACpG,IAAI,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kGAAkG;IAClG,mGAAmG;IACnG,mGAAmG;IACnG,2EAA2E;IAC3E,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"processEth1Data.js","sourceRoot":"","sources":["../../src/block/processEth1Data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,6BAA6B,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAG5C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgC,EAAE,QAAyB;IACzF,wDAAwD;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA0B,EAC1B,WAAwD;IAExD,MAAM,4BAA4B,GAAG,6BAA6B,GAAG,eAAe,CAAC;IAErF,uFAAuF;IACvF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,4BAA4B,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oGAAoG;IACpG,IAAI,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kGAAkG;IAClG,mGAAmG;IACnG,mGAAmG;IACnG,2EAA2E;IAC3E,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,kDAAkD;IAClD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC3C,IAAI,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;YACnD,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,4BAA4B,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAAsD,EACtD,SAAsD;IAEtD,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,2CAA2C;AAC3C,SAAS,WAAW,CAAC,EAAQ,EAAE,EAAQ;IACrC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC;IAC7B,OAAO,CACL,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACf,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -19,9 +19,11 @@ const inclusionDelays = new Array();
|
|
|
19
19
|
/** WARNING: reused, never gc'd */
|
|
20
20
|
const flags = new Array();
|
|
21
21
|
/** WARNING: reused, never gc'd */
|
|
22
|
-
const isCompoundingValidatorArr = new Array();
|
|
23
|
-
/** WARNING: reused, never gc'd */
|
|
24
22
|
const nextEpochShufflingActiveValidatorIndices = new Array();
|
|
23
|
+
/** WARNING: reused, never gc'd */
|
|
24
|
+
const isCompoundingValidatorArr = new Array();
|
|
25
|
+
const previousEpochParticipation = new Array();
|
|
26
|
+
const currentEpochParticipation = new Array();
|
|
25
27
|
export function beforeProcessEpoch(state, opts) {
|
|
26
28
|
const { config, epochCtx } = state;
|
|
27
29
|
const forkSeq = config.getForkSeq(state.slot);
|
|
@@ -36,11 +38,7 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
36
38
|
const indicesEligibleForActivation = [];
|
|
37
39
|
const indicesToEject = [];
|
|
38
40
|
let totalActiveStakeByIncrement = 0;
|
|
39
|
-
|
|
40
|
-
// `BranchNodeStruct` that represents the data as struct internally. This utility grabs the struct data directly
|
|
41
|
-
// from the nodes without any extra transformation. The returned `validators` array contains native JS objects.
|
|
42
|
-
const validators = state.validators.getAllReadonlyValues();
|
|
43
|
-
const validatorCount = validators.length;
|
|
41
|
+
const validatorCount = state.validators.length;
|
|
44
42
|
nextEpochShufflingActiveValidatorIndices.length = validatorCount;
|
|
45
43
|
let nextEpochShufflingActiveIndicesLength = 0;
|
|
46
44
|
// pre-fill with true (most validators are active)
|
|
@@ -69,8 +67,7 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
69
67
|
// Clone before being mutated in processEffectiveBalanceUpdates
|
|
70
68
|
epochCtx.beforeEpochTransition();
|
|
71
69
|
const effectiveBalancesByIncrements = epochCtx.effectiveBalanceIncrements;
|
|
72
|
-
|
|
73
|
-
const validator = validators[i];
|
|
70
|
+
state.validators.forEachValue((validator, i) => {
|
|
74
71
|
let flag = 0;
|
|
75
72
|
if (validator.slashed) {
|
|
76
73
|
if (slashingsEpoch === validator.withdrawableEpoch) {
|
|
@@ -130,7 +127,10 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
130
127
|
//
|
|
131
128
|
// Use `else` since indicesEligibleForActivationQueue + indicesEligibleForActivation are mutually exclusive
|
|
132
129
|
else if (validator.activationEpoch === FAR_FUTURE_EPOCH && validator.activationEligibilityEpoch <= currentEpoch) {
|
|
133
|
-
indicesEligibleForActivation.push(
|
|
130
|
+
indicesEligibleForActivation.push({
|
|
131
|
+
validatorIndex: i,
|
|
132
|
+
activationEligibilityEpoch: validator.activationEligibilityEpoch,
|
|
133
|
+
});
|
|
134
134
|
}
|
|
135
135
|
// To optimize process_registry_updates():
|
|
136
136
|
// ```python
|
|
@@ -150,7 +150,7 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
150
150
|
if (isActiveNext2) {
|
|
151
151
|
nextEpochShufflingActiveValidatorIndices[nextEpochShufflingActiveIndicesLength++] = i;
|
|
152
152
|
}
|
|
153
|
-
}
|
|
153
|
+
});
|
|
154
154
|
// Trigger async build of shuffling for epoch after next (nextShuffling post epoch transition)
|
|
155
155
|
const epochAfterNext = state.epochCtx.nextEpoch + 1;
|
|
156
156
|
// cannot call calculateShufflingDecisionRoot here because spec prevent getting current slot
|
|
@@ -179,7 +179,7 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
179
179
|
const baseRewardPerIncrement = computeBaseRewardPerIncrement(totalActiveStakeByIncrement);
|
|
180
180
|
// To optimize process_registry_updates():
|
|
181
181
|
// order by sequence of activationEligibilityEpoch setting and then index
|
|
182
|
-
indicesEligibleForActivation.sort((a, b) =>
|
|
182
|
+
indicesEligibleForActivation.sort((a, b) => a.activationEligibilityEpoch - b.activationEligibilityEpoch || a.validatorIndex - b.validatorIndex);
|
|
183
183
|
if (forkSeq === ForkSeq.phase0) {
|
|
184
184
|
proposerIndices.length = validatorCount;
|
|
185
185
|
proposerIndices.fill(-1);
|
|
@@ -189,8 +189,10 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
189
189
|
processPendingAttestations(state, proposerIndices, inclusionDelays, flags, state.currentEpochAttestations.getAllReadonly(), currentEpoch, FLAG_CURR_SOURCE_ATTESTER, FLAG_CURR_TARGET_ATTESTER, FLAG_CURR_HEAD_ATTESTER);
|
|
190
190
|
}
|
|
191
191
|
else {
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
previousEpochParticipation.length = state.previousEpochParticipation.length;
|
|
193
|
+
state.previousEpochParticipation.getAll(previousEpochParticipation);
|
|
194
|
+
currentEpochParticipation.length = state.currentEpochParticipation.length;
|
|
195
|
+
state.currentEpochParticipation.getAll(currentEpochParticipation);
|
|
194
196
|
for (let i = 0; i < validatorCount; i++) {
|
|
195
197
|
flags[i] |=
|
|
196
198
|
// checking active status first is required to pass random spec tests in altair
|
|
@@ -258,7 +260,7 @@ export function beforeProcessEpoch(state, opts) {
|
|
|
258
260
|
currEpochUnslashedTargetStakeByIncrement: currTargetUnslStake,
|
|
259
261
|
indicesToSlash,
|
|
260
262
|
indicesEligibleForActivationQueue,
|
|
261
|
-
indicesEligibleForActivation,
|
|
263
|
+
indicesEligibleForActivation: indicesEligibleForActivation.map(({ validatorIndex }) => validatorIndex),
|
|
262
264
|
indicesToEject,
|
|
263
265
|
nextShufflingDecisionRoot,
|
|
264
266
|
nextShufflingActiveIndices,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochTransitionCache.js","sourceRoot":"","sources":["../../src/cache/epochTransitionCache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,OAAO,EACP,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAIL,kCAAkC,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,6BAA6B,EAAC,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,UAAU,GACX,MAAM,2BAA2B,CAAC;AAmLnC,mDAAmD;AACnD,kCAAkC;AAClC,kCAAkC;AAClC,MAAM,iBAAiB,GAAG,IAAI,KAAK,EAAW,CAAC;AAC/C,kCAAkC;AAClC,MAAM,iBAAiB,GAAG,IAAI,KAAK,EAAW,CAAC;AAC/C,kCAAkC;AAClC,MAAM,iBAAiB,GAAG,IAAI,KAAK,EAAW,CAAC;AAC/C,mEAAmE;AACnE,MAAM,eAAe,GAAG,IAAI,KAAK,EAAU,CAAC;AAC5C,mEAAmE;AACnE,MAAM,eAAe,GAAG,IAAI,KAAK,EAAU,CAAC;AAC5C,kCAAkC;AAClC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;AAClC,kCAAkC;AAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"epochTransitionCache.js","sourceRoot":"","sources":["../../src/cache/epochTransitionCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { EFFECTIVE_BALANCE_INCREMENT, ForkSeq, INACTIVITY_PENALTY_QUOTIENT_ALTAIR, INACTIVITY_PENALTY_QUOTIENT_BELLATRIX, PARTICIPATION_FLAG_WEIGHTS, TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX, WEIGHT_DENOMINATOR, } from "@lodestar/params";
|
|
2
2
|
import { FLAG_ELIGIBLE_ATTESTER, FLAG_PREV_HEAD_ATTESTER_UNSLASHED, FLAG_PREV_SOURCE_ATTESTER_UNSLASHED, FLAG_PREV_TARGET_ATTESTER_UNSLASHED, hasMarkers, } from "../util/attesterStatus.js";
|
|
3
|
-
import { isInInactivityLeak
|
|
3
|
+
import { isInInactivityLeak } from "../util/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* This data is reused and never gc.
|
|
6
|
+
*/
|
|
7
|
+
const rewards = new Array();
|
|
8
|
+
const penalties = new Array();
|
|
4
9
|
/**
|
|
5
10
|
* An aggregate of getFlagIndexDeltas and getInactivityPenaltyDeltas that loop through process.flags 1 time instead of 4.
|
|
6
11
|
*
|
|
@@ -18,8 +23,10 @@ export function getRewardsAndPenaltiesAltair(state, cache) {
|
|
|
18
23
|
// TODO: Is there a cheaper way to measure length that going to `state.validators`?
|
|
19
24
|
const validatorCount = state.validators.length;
|
|
20
25
|
const activeIncrements = cache.totalActiveStakeByIncrement;
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
rewards.length = validatorCount;
|
|
27
|
+
rewards.fill(0);
|
|
28
|
+
penalties.length = validatorCount;
|
|
29
|
+
penalties.fill(0);
|
|
23
30
|
const isInInactivityLeakBn = isInInactivityLeak(state);
|
|
24
31
|
// effectiveBalance is multiple of EFFECTIVE_BALANCE_INCREMENT and less than MAX_EFFECTIVE_BALANCE
|
|
25
32
|
// so there are limited values of them like 32, 31, 30
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/getRewardsAndPenalties.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,kCAAkC,EAClC,qCAAqC,EACrC,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,iCAAiC,EACjC,mCAAmC,EACnC,mCAAmC,EACnC,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"getRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/getRewardsAndPenalties.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { GENESIS_EPOCH } from "@lodestar/params";
|
|
2
2
|
import * as attesterStatusUtil from "../util/attesterStatus.js";
|
|
3
3
|
import { isInInactivityLeak } from "../util/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* This data is reused and never gc.
|
|
6
|
+
*/
|
|
7
|
+
const inactivityScoresArr = new Array();
|
|
4
8
|
/**
|
|
5
9
|
* Mutates `inactivityScores` from pre-calculated validator flags.
|
|
6
10
|
*
|
|
@@ -25,7 +29,8 @@ export function processInactivityUpdates(state, cache) {
|
|
|
25
29
|
const inActivityLeak = isInInactivityLeak(state);
|
|
26
30
|
// this avoids importing FLAG_ELIGIBLE_ATTESTER inside the for loop, check the compiled code
|
|
27
31
|
const { FLAG_PREV_TARGET_ATTESTER_UNSLASHED, FLAG_ELIGIBLE_ATTESTER, hasMarkers } = attesterStatusUtil;
|
|
28
|
-
|
|
32
|
+
inactivityScoresArr.length = state.validators.length;
|
|
33
|
+
inactivityScores.getAll(inactivityScoresArr);
|
|
29
34
|
for (let i = 0; i < flags.length; i++) {
|
|
30
35
|
const flag = flags[i];
|
|
31
36
|
if (hasMarkers(flag, FLAG_ELIGIBLE_ATTESTER)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processInactivityUpdates.js","sourceRoot":"","sources":["../../src/epoch/processInactivityUpdates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA8B,EAAE,KAA2B;IAClG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,KAAK,CAAC;IACzC,MAAM,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,GAAG,MAAM,CAAC;IACvE,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEjD,4FAA4F;IAC5F,MAAM,EAAC,mCAAmC,EAAE,sBAAsB,EAAE,UAAU,EAAC,GAAG,kBAAkB,CAAC;IAErG,MAAM,
|
|
1
|
+
{"version":3,"file":"processInactivityUpdates.js","sourceRoot":"","sources":["../../src/epoch/processInactivityUpdates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,KAAK,EAAU,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA8B,EAAE,KAA2B;IAClG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,KAAK,CAAC;IACzC,MAAM,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,GAAG,MAAM,CAAC;IACvE,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEjD,4FAA4F;IAC5F,MAAM,EAAC,mCAAmC,EAAE,sBAAsB,EAAE,UAAU,EAAC,GAAG,kBAAkB,CAAC;IAErG,mBAAmB,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACrD,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC;YAC7C,IAAI,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAE7C,MAAM,mBAAmB,GAAG,eAAe,CAAC;YAC5C,IAAI,UAAU,CAAC,IAAI,EAAE,mCAAmC,CAAC,EAAE,CAAC;gBAC1D,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,eAAe,IAAI,qBAAqB,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,eAAe,KAAK,mBAAmB,EAAE,CAAC;gBAC5C,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,10 @@ import { ForkSeq, GENESIS_EPOCH } from "@lodestar/params";
|
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
3
|
import { getAttestationDeltas } from "./getAttestationDeltas.js";
|
|
4
4
|
import { getRewardsAndPenaltiesAltair } from "./getRewardsAndPenalties.js";
|
|
5
|
+
/**
|
|
6
|
+
* This data is reused and never gc.
|
|
7
|
+
*/
|
|
8
|
+
const balances = new Array();
|
|
5
9
|
/**
|
|
6
10
|
* Iterate over all validator and compute rewards and penalties to apply to balances.
|
|
7
11
|
*
|
|
@@ -13,7 +17,8 @@ export function processRewardsAndPenalties(state, cache, slashingPenalties = [])
|
|
|
13
17
|
return;
|
|
14
18
|
}
|
|
15
19
|
const [rewards, penalties] = getRewardsAndPenalties(state, cache);
|
|
16
|
-
|
|
20
|
+
balances.length = state.balances.length;
|
|
21
|
+
state.balances.getAll(balances);
|
|
17
22
|
for (let i = 0, len = rewards.length; i < len; i++) {
|
|
18
23
|
const result = balances[i] + rewards[i] - penalties[i] - (slashingPenalties[i] ?? 0);
|
|
19
24
|
balances[i] = Math.max(result, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/processRewardsAndPenalties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAOpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC,EAChC,KAA2B,EAC3B,oBAA8B,EAAE;IAEhC,+GAA+G;IAC/G,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"processRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/processRewardsAndPenalties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAOpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAEzE;;GAEG;AACH,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;AACrC;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC,EAChC,KAA2B,EAC3B,oBAA8B,EAAE;IAEhC,+GAA+G;IAC/G,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,8GAA8G;IAC9G,gCAAgC;IAChC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExD,2FAA2F;IAC3F,wBAAwB;IACxB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,sBAAsB,CACpC,KAAgC,EAChC,oBAA0C;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,KAAK,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,oBAAoB,CAAC,KAAgC,EAAE,oBAAoB,CAAC;QAC9E,CAAC,CAAC,4BAA4B,CAAC,KAAgC,EAAE,oBAAoB,CAAC,CAAC;AAC3F,CAAC"}
|
package/lib/util/balance.js
CHANGED
|
@@ -46,13 +46,13 @@ export function getEffectiveBalanceIncrementsZeroInactive(justifiedState) {
|
|
|
46
46
|
// Slice up to `validatorCount` since it won't be mutated, nor accessed beyond `validatorCount`
|
|
47
47
|
// NOTE: Force to use Uint16Array.slice (copy) instead of Buffer.call (not copy)
|
|
48
48
|
const effectiveBalanceIncrementsZeroInactive = Uint16Array.prototype.slice.call(effectiveBalanceIncrements, 0, validatorCount);
|
|
49
|
-
const validators = justifiedState.validators.getAllReadonly();
|
|
50
49
|
let j = 0;
|
|
51
|
-
|
|
50
|
+
justifiedState.validators.forEachValue((validator, i) => {
|
|
51
|
+
const { slashed } = validator;
|
|
52
52
|
if (i === activeIndices[j]) {
|
|
53
53
|
// active validator
|
|
54
54
|
j++;
|
|
55
|
-
if (
|
|
55
|
+
if (slashed) {
|
|
56
56
|
// slashed validator
|
|
57
57
|
effectiveBalanceIncrementsZeroInactive[i] = 0;
|
|
58
58
|
}
|
|
@@ -61,7 +61,7 @@ export function getEffectiveBalanceIncrementsZeroInactive(justifiedState) {
|
|
|
61
61
|
// inactive validator
|
|
62
62
|
effectiveBalanceIncrementsZeroInactive[i] = 0;
|
|
63
63
|
}
|
|
64
|
-
}
|
|
64
|
+
});
|
|
65
65
|
return effectiveBalanceIncrementsZeroInactive;
|
|
66
66
|
}
|
|
67
67
|
//# sourceMappingURL=balance.js.map
|
package/lib/util/balance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/util/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK1C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,OAAyB;IACnF,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtB,yDAAyD;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,KAAqB,EAAE,KAAa;IAC9F,oBAAoB;IACpB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,KAAqB,EAAE,KAAa;IAC9F,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,yEAAyE;IACzE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,cAAyC;IAEzC,MAAM,EAAC,aAAa,EAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjE,+EAA+E;IAC/E,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IACxD,MAAM,EAAC,0BAA0B,EAAC,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC7D,+FAA+F;IAC/F,gFAAgF;IAChF,MAAM,sCAAsC,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAC7E,0BAA0B,EAC1B,CAAC,EACD,cAAc,CACf,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/util/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK1C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,OAAyB;IACnF,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtB,yDAAyD;IACzD,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,KAAqB,EAAE,KAAa;IAC9F,oBAAoB;IACpB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B,EAAE,KAAqB,EAAE,KAAa;IAC9F,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,yEAAyE;IACzE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,cAAyC;IAEzC,MAAM,EAAC,aAAa,EAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjE,+EAA+E;IAC/E,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IACxD,MAAM,EAAC,0BAA0B,EAAC,GAAG,cAAc,CAAC,QAAQ,CAAC;IAC7D,+FAA+F;IAC/F,gFAAgF;IAChF,MAAM,sCAAsC,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAC7E,0BAA0B,EAC1B,CAAC,EACD,cAAc,CACf,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,EAAC,OAAO,EAAC,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,mBAAmB;YACnB,CAAC,EAAE,CAAC;YACJ,IAAI,OAAO,EAAE,CAAC;gBACZ,oBAAoB;gBACpB,sCAAsC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,sCAAsC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,sCAAsC,CAAC;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.29.0-dev.
|
|
14
|
+
"version": "1.29.0-dev.d203cc3a06",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
},
|
|
59
59
|
"types": "lib/index.d.ts",
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@chainsafe/as-sha256": "^1.
|
|
61
|
+
"@chainsafe/as-sha256": "^1.1.0",
|
|
62
62
|
"@chainsafe/blst": "^2.1.0",
|
|
63
|
-
"@chainsafe/persistent-merkle-tree": "^1.0
|
|
63
|
+
"@chainsafe/persistent-merkle-tree": "^1.1.0",
|
|
64
64
|
"@chainsafe/persistent-ts": "^1.0.0",
|
|
65
65
|
"@chainsafe/pubkey-index-map": "2.0.0",
|
|
66
|
-
"@chainsafe/ssz": "^1.0
|
|
66
|
+
"@chainsafe/ssz": "^1.2.0",
|
|
67
67
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
68
|
-
"@lodestar/config": "1.29.0-dev.
|
|
69
|
-
"@lodestar/params": "1.29.0-dev.
|
|
70
|
-
"@lodestar/types": "1.29.0-dev.
|
|
71
|
-
"@lodestar/utils": "1.29.0-dev.
|
|
68
|
+
"@lodestar/config": "1.29.0-dev.d203cc3a06",
|
|
69
|
+
"@lodestar/params": "1.29.0-dev.d203cc3a06",
|
|
70
|
+
"@lodestar/types": "1.29.0-dev.d203cc3a06",
|
|
71
|
+
"@lodestar/utils": "1.29.0-dev.d203cc3a06",
|
|
72
72
|
"bigint-buffer": "^1.1.5"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"beacon",
|
|
78
78
|
"blockchain"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "4c51b59a4af0808d5e1d885b6bbbc7ab7de31437"
|
|
81
81
|
}
|