@lodestar/state-transition 1.23.0-dev.de0d6ab89b → 1.23.0-dev.e6c1c5b3e3

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.
Files changed (42) hide show
  1. package/lib/block/processConsolidationRequest.js +54 -8
  2. package/lib/block/processConsolidationRequest.js.map +1 -1
  3. package/lib/block/processDeposit.d.ts +4 -1
  4. package/lib/block/processDeposit.js +32 -36
  5. package/lib/block/processDeposit.js.map +1 -1
  6. package/lib/block/processDepositRequest.d.ts +1 -2
  7. package/lib/block/processDepositRequest.js +11 -3
  8. package/lib/block/processDepositRequest.js.map +1 -1
  9. package/lib/block/processOperations.js +1 -1
  10. package/lib/block/processOperations.js.map +1 -1
  11. package/lib/block/processWithdrawals.js +3 -2
  12. package/lib/block/processWithdrawals.js.map +1 -1
  13. package/lib/cache/epochTransitionCache.d.ts +0 -5
  14. package/lib/cache/epochTransitionCache.js +0 -2
  15. package/lib/cache/epochTransitionCache.js.map +1 -1
  16. package/lib/constants/constants.d.ts +3 -4
  17. package/lib/constants/constants.js +4 -4
  18. package/lib/constants/constants.js.map +1 -1
  19. package/lib/epoch/index.d.ts +3 -3
  20. package/lib/epoch/index.js +5 -5
  21. package/lib/epoch/index.js.map +1 -1
  22. package/lib/epoch/processEffectiveBalanceUpdates.js +4 -7
  23. package/lib/epoch/processEffectiveBalanceUpdates.js.map +1 -1
  24. package/lib/epoch/processPendingConsolidations.js +7 -12
  25. package/lib/epoch/processPendingConsolidations.js.map +1 -1
  26. package/lib/epoch/{processPendingBalanceDeposits.d.ts → processPendingDeposits.d.ts} +4 -4
  27. package/lib/epoch/processPendingDeposits.js +102 -0
  28. package/lib/epoch/processPendingDeposits.js.map +1 -0
  29. package/lib/slot/upgradeStateToElectra.d.ts +0 -1
  30. package/lib/slot/upgradeStateToElectra.js +18 -37
  31. package/lib/slot/upgradeStateToElectra.js.map +1 -1
  32. package/lib/util/electra.d.ts +0 -1
  33. package/lib/util/electra.js +19 -27
  34. package/lib/util/electra.js.map +1 -1
  35. package/lib/util/genesis.js +8 -3
  36. package/lib/util/genesis.js.map +1 -1
  37. package/lib/util/validator.d.ts +0 -1
  38. package/lib/util/validator.js +0 -4
  39. package/lib/util/validator.js.map +1 -1
  40. package/package.json +6 -6
  41. package/lib/epoch/processPendingBalanceDeposits.js +0 -66
  42. package/lib/epoch/processPendingBalanceDeposits.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { decreaseBalance, increaseBalance } from "../util/balance.js";
2
- import { getActiveBalance } from "../util/validator.js";
3
- import { switchToCompoundingValidator } from "../util/electra.js";
2
+ import { getMaxEffectiveBalance } from "../util/validator.js";
4
3
  /**
5
4
  * Starting from Electra:
6
5
  * Process every `pendingConsolidation` in `state.pendingConsolidations`.
@@ -19,7 +18,6 @@ export function processPendingConsolidations(state, cache) {
19
18
  let nextPendingConsolidation = 0;
20
19
  const validators = state.validators;
21
20
  const cachedBalances = cache.balances;
22
- const newCompoundingValidators = new Set();
23
21
  for (const pendingConsolidation of state.pendingConsolidations.getAllReadonly()) {
24
22
  const { sourceIndex, targetIndex } = pendingConsolidation;
25
23
  const sourceValidator = validators.getReadonly(sourceIndex);
@@ -30,20 +28,17 @@ export function processPendingConsolidations(state, cache) {
30
28
  if (sourceValidator.withdrawableEpoch > nextEpoch) {
31
29
  break;
32
30
  }
33
- // Churn any target excess active balance of target and raise its max
34
- switchToCompoundingValidator(state, targetIndex);
35
- newCompoundingValidators.add(targetIndex);
36
31
  // Move active balance to target. Excess balance is withdrawable.
37
- const activeBalance = getActiveBalance(state, sourceIndex);
38
- decreaseBalance(state, sourceIndex, activeBalance);
39
- increaseBalance(state, targetIndex, activeBalance);
32
+ const maxEffectiveBalance = getMaxEffectiveBalance(state.validators.getReadonly(sourceIndex).withdrawalCredentials);
33
+ const sourceEffectiveBalance = Math.min(state.balances.get(sourceIndex), maxEffectiveBalance);
34
+ decreaseBalance(state, sourceIndex, sourceEffectiveBalance);
35
+ increaseBalance(state, targetIndex, sourceEffectiveBalance);
40
36
  if (cachedBalances) {
41
- cachedBalances[sourceIndex] -= activeBalance;
42
- cachedBalances[targetIndex] += activeBalance;
37
+ cachedBalances[sourceIndex] -= sourceEffectiveBalance;
38
+ cachedBalances[targetIndex] += sourceEffectiveBalance;
43
39
  }
44
40
  nextPendingConsolidation++;
45
41
  }
46
- cache.newCompoundingValidators = newCompoundingValidators;
47
42
  state.pendingConsolidations = state.pendingConsolidations.sliceFrom(nextPendingConsolidation);
48
43
  }
49
44
  //# sourceMappingURL=processPendingConsolidations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processPendingConsolidations.js","sourceRoot":"","sources":["../../src/epoch/processPendingConsolidations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA+B,EAAE,KAA2B;IACvG,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3C,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;IACtC,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3D,KAAK,MAAM,oBAAoB,IAAI,KAAK,CAAC,qBAAqB,CAAC,cAAc,EAAE,EAAE,CAAC;QAChF,MAAM,EAAC,WAAW,EAAE,WAAW,EAAC,GAAG,oBAAoB,CAAC;QACxD,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE5D,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,eAAe,CAAC,iBAAiB,GAAG,SAAS,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,qEAAqE;QACrE,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACjD,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,iEAAiE;QACjE,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC3D,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QACnD,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC;YAC7C,cAAc,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC;QAC/C,CAAC;QAED,wBAAwB,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC1D,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"processPendingConsolidations.js","sourceRoot":"","sources":["../../src/epoch/processPendingConsolidations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA+B,EAAE,KAA2B;IACvG,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3C,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEtC,KAAK,MAAM,oBAAoB,IAAI,KAAK,CAAC,qBAAqB,CAAC,cAAc,EAAE,EAAE,CAAC;QAChF,MAAM,EAAC,WAAW,EAAE,WAAW,EAAC,GAAG,oBAAoB,CAAC;QACxD,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE5D,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,eAAe,CAAC,iBAAiB,GAAG,SAAS,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,iEAAiE;QACjE,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC;QACpH,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC9F,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC5D,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC;YACtD,cAAc,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC;QACxD,CAAC;QAED,wBAAwB,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAChG,CAAC"}
@@ -3,10 +3,10 @@ import { CachedBeaconStateElectra, EpochTransitionCache } from "../types.js";
3
3
  * Starting from Electra:
4
4
  * Process pending balance deposits from state subject to churn limit and depsoitBalanceToConsume.
5
5
  * For each eligible `deposit`, call `increaseBalance()`.
6
- * Remove the processed deposits from `state.pendingBalanceDeposits`.
6
+ * Remove the processed deposits from `state.pendingDeposits`.
7
7
  * Update `state.depositBalanceToConsume` for the next epoch
8
8
  *
9
- * TODO Electra: Update ssz library to support batch push to `pendingBalanceDeposits`
9
+ * TODO Electra: Update ssz library to support batch push to `pendingDeposits`
10
10
  */
11
- export declare function processPendingBalanceDeposits(state: CachedBeaconStateElectra, cache: EpochTransitionCache): void;
12
- //# sourceMappingURL=processPendingBalanceDeposits.d.ts.map
11
+ export declare function processPendingDeposits(state: CachedBeaconStateElectra, cache: EpochTransitionCache): void;
12
+ //# sourceMappingURL=processPendingDeposits.d.ts.map
@@ -0,0 +1,102 @@
1
+ import { FAR_FUTURE_EPOCH, ForkSeq, GENESIS_SLOT, MAX_PENDING_DEPOSITS_PER_EPOCH } from "@lodestar/params";
2
+ import { increaseBalance } from "../util/balance.js";
3
+ import { getActivationExitChurnLimit } from "../util/validator.js";
4
+ import { computeStartSlotAtEpoch } from "../util/epoch.js";
5
+ import { addValidatorToRegistry, isValidDepositSignature } from "../block/processDeposit.js";
6
+ /**
7
+ * Starting from Electra:
8
+ * Process pending balance deposits from state subject to churn limit and depsoitBalanceToConsume.
9
+ * For each eligible `deposit`, call `increaseBalance()`.
10
+ * Remove the processed deposits from `state.pendingDeposits`.
11
+ * Update `state.depositBalanceToConsume` for the next epoch
12
+ *
13
+ * TODO Electra: Update ssz library to support batch push to `pendingDeposits`
14
+ */
15
+ export function processPendingDeposits(state, cache) {
16
+ const nextEpoch = state.epochCtx.epoch + 1;
17
+ const availableForProcessing = state.depositBalanceToConsume + BigInt(getActivationExitChurnLimit(state.epochCtx));
18
+ let processedAmount = 0;
19
+ let nextDepositIndex = 0;
20
+ const depositsToPostpone = [];
21
+ let isChurnLimitReached = false;
22
+ const finalizedSlot = computeStartSlotAtEpoch(state.finalizedCheckpoint.epoch);
23
+ for (const deposit of state.pendingDeposits.getAllReadonly()) {
24
+ // Do not process deposit requests if Eth1 bridge deposits are not yet applied.
25
+ if (
26
+ // Is deposit request
27
+ deposit.slot > GENESIS_SLOT &&
28
+ // There are pending Eth1 bridge deposits
29
+ state.eth1DepositIndex < state.depositRequestsStartIndex) {
30
+ break;
31
+ }
32
+ // Check if deposit has been finalized, otherwise, stop processing.
33
+ if (deposit.slot > finalizedSlot) {
34
+ break;
35
+ }
36
+ // Check if number of processed deposits has not reached the limit, otherwise, stop processing.
37
+ if (nextDepositIndex >= MAX_PENDING_DEPOSITS_PER_EPOCH) {
38
+ break;
39
+ }
40
+ // Read validator state
41
+ let isValidatorExited = false;
42
+ let isValidatorWithdrawn = false;
43
+ const validatorIndex = state.epochCtx.getValidatorIndex(deposit.pubkey);
44
+ if (validatorIndex !== null) {
45
+ const validator = state.validators.getReadonly(validatorIndex);
46
+ isValidatorExited = validator.exitEpoch < FAR_FUTURE_EPOCH;
47
+ isValidatorWithdrawn = validator.withdrawableEpoch < nextEpoch;
48
+ }
49
+ if (isValidatorWithdrawn) {
50
+ // Deposited balance will never become active. Increase balance but do not consume churn
51
+ applyPendingDeposit(state, deposit, cache);
52
+ }
53
+ else if (isValidatorExited) {
54
+ // Validator is exiting, postpone the deposit until after withdrawable epoch
55
+ depositsToPostpone.push(deposit);
56
+ }
57
+ else {
58
+ // Check if deposit fits in the churn, otherwise, do no more deposit processing in this epoch.
59
+ isChurnLimitReached = processedAmount + deposit.amount > availableForProcessing;
60
+ if (isChurnLimitReached) {
61
+ break;
62
+ }
63
+ // Consume churn and apply deposit.
64
+ processedAmount += deposit.amount;
65
+ applyPendingDeposit(state, deposit, cache);
66
+ }
67
+ // Regardless of how the deposit was handled, we move on in the queue.
68
+ nextDepositIndex++;
69
+ }
70
+ const remainingPendingDeposits = state.pendingDeposits.sliceFrom(nextDepositIndex);
71
+ state.pendingDeposits = remainingPendingDeposits;
72
+ // TODO Electra: add a function in ListCompositeTreeView to support batch push operation
73
+ for (const deposit of depositsToPostpone) {
74
+ state.pendingDeposits.push(deposit);
75
+ }
76
+ // Accumulate churn only if the churn limit has been hit.
77
+ if (isChurnLimitReached) {
78
+ state.depositBalanceToConsume = availableForProcessing - BigInt(processedAmount);
79
+ }
80
+ else {
81
+ state.depositBalanceToConsume = 0n;
82
+ }
83
+ }
84
+ function applyPendingDeposit(state, deposit, cache) {
85
+ const validatorIndex = state.epochCtx.getValidatorIndex(deposit.pubkey);
86
+ const { pubkey, withdrawalCredentials, amount, signature } = deposit;
87
+ const cachedBalances = cache.balances;
88
+ if (validatorIndex === null) {
89
+ // Verify the deposit signature (proof of possession) which is not checked by the deposit contract
90
+ if (isValidDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
91
+ addValidatorToRegistry(ForkSeq.electra, state, pubkey, withdrawalCredentials, amount);
92
+ }
93
+ }
94
+ else {
95
+ // Increase balance
96
+ increaseBalance(state, validatorIndex, amount);
97
+ if (cachedBalances) {
98
+ cachedBalances[validatorIndex] += amount;
99
+ }
100
+ }
101
+ }
102
+ //# sourceMappingURL=processPendingDeposits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processPendingDeposits.js","sourceRoot":"","sources":["../../src/epoch/processPendingDeposits.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,4 @@ import { CachedBeaconStateElectra } from "../cache/stateCache.js";
4
4
  * Upgrade a state from Deneb to Electra.
5
5
  */
6
6
  export declare function upgradeStateToElectra(stateDeneb: CachedBeaconStateDeneb): CachedBeaconStateElectra;
7
- export declare function upgradeStateToElectraOriginal(stateDeneb: CachedBeaconStateDeneb): CachedBeaconStateElectra;
8
7
  //# sourceMappingURL=upgradeStateToElectra.d.ts.map
@@ -1,9 +1,10 @@
1
1
  import { ssz } from "@lodestar/types";
2
- import { FAR_FUTURE_EPOCH, UNSET_DEPOSIT_REQUESTS_START_INDEX } from "@lodestar/params";
2
+ import { FAR_FUTURE_EPOCH, GENESIS_SLOT, UNSET_DEPOSIT_REQUESTS_START_INDEX } from "@lodestar/params";
3
3
  import { getCachedBeaconState } from "../cache/stateCache.js";
4
- import { hasCompoundingWithdrawalCredential, queueEntireBalanceAndResetValidator, queueExcessActiveBalance, } from "../util/electra.js";
4
+ import { hasCompoundingWithdrawalCredential, queueExcessActiveBalance } from "../util/electra.js";
5
5
  import { computeActivationExitEpoch } from "../util/epoch.js";
6
6
  import { getActivationExitChurnLimit, getConsolidationChurnLimit } from "../util/validator.js";
7
+ import { G2_POINT_AT_INFINITY } from "../constants/constants.js";
7
8
  /**
8
9
  * Upgrade a state from Deneb to Electra.
9
10
  */
@@ -68,8 +69,6 @@ export function upgradeStateToElectra(stateDeneb) {
68
69
  stateElectraView.earliestExitEpoch = Math.max(...exitEpochs) + 1;
69
70
  stateElectraView.consolidationBalanceToConsume = BigInt(0);
70
71
  stateElectraView.earliestConsolidationEpoch = computeActivationExitEpoch(currentEpochPre);
71
- // stateElectraView.pendingBalanceDeposits = ssz.electra.PendingBalanceDeposits.defaultViewDU();
72
- // pendingBalanceDeposits, pendingPartialWithdrawals, pendingConsolidations are default values
73
72
  // TODO-electra: can we improve this?
74
73
  stateElectraView.commit();
75
74
  const tmpElectraState = getCachedBeaconState(stateElectraView, stateDeneb);
@@ -80,7 +79,21 @@ export function upgradeStateToElectra(stateDeneb) {
80
79
  return res !== 0 ? res : i0 - i1;
81
80
  });
82
81
  for (const validatorIndex of preActivation) {
83
- queueEntireBalanceAndResetValidator(stateElectraView, validatorIndex);
82
+ const stateElectra = stateElectraView;
83
+ const balance = stateElectra.balances.get(validatorIndex);
84
+ stateElectra.balances.set(validatorIndex, 0);
85
+ const validator = stateElectra.validators.get(validatorIndex);
86
+ validator.effectiveBalance = 0;
87
+ stateElectra.epochCtx.effectiveBalanceIncrementsSet(validatorIndex, 0);
88
+ validator.activationEligibilityEpoch = FAR_FUTURE_EPOCH;
89
+ const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
90
+ pubkey: validator.pubkey,
91
+ withdrawalCredentials: validator.withdrawalCredentials,
92
+ amount: balance,
93
+ signature: G2_POINT_AT_INFINITY,
94
+ slot: GENESIS_SLOT,
95
+ });
96
+ stateElectra.pendingDeposits.push(pendingDeposit);
84
97
  }
85
98
  for (let i = 0; i < validatorsArr.length; i++) {
86
99
  const validator = validatorsArr[i];
@@ -98,36 +111,4 @@ export function upgradeStateToElectra(stateDeneb) {
98
111
  stateElectra["clearCache"]();
99
112
  return stateElectra;
100
113
  }
101
- export function upgradeStateToElectraOriginal(stateDeneb) {
102
- const { config } = stateDeneb;
103
- const stateElectraNode = ssz.deneb.BeaconState.commitViewDU(stateDeneb);
104
- const stateElectraView = ssz.electra.BeaconState.getViewDU(stateElectraNode);
105
- const stateElectra = getCachedBeaconState(stateElectraView, stateDeneb);
106
- stateElectra.fork = ssz.phase0.Fork.toViewDU({
107
- previousVersion: stateDeneb.fork.currentVersion,
108
- currentVersion: config.ELECTRA_FORK_VERSION,
109
- epoch: stateDeneb.epochCtx.epoch,
110
- });
111
- // default value of depositRequestsStartIndex is UNSET_DEPOSIT_REQUESTS_START_INDEX
112
- stateElectra.depositRequestsStartIndex = UNSET_DEPOSIT_REQUESTS_START_INDEX;
113
- const validatorsArr = stateElectra.validators.getAllReadonly();
114
- for (let i = 0; i < validatorsArr.length; i++) {
115
- const validator = validatorsArr[i];
116
- // [EIP-7251]: add validators that are not yet active to pending balance deposits
117
- if (validator.activationEligibilityEpoch === FAR_FUTURE_EPOCH) {
118
- queueEntireBalanceAndResetValidator(stateElectra, i);
119
- }
120
- // [EIP-7251]: Ensure early adopters of compounding credentials go through the activation churn
121
- const withdrawalCredential = validator.withdrawalCredentials;
122
- if (hasCompoundingWithdrawalCredential(withdrawalCredential)) {
123
- queueExcessActiveBalance(stateElectra, i);
124
- }
125
- }
126
- // Commit new added fields ViewDU to the root node
127
- stateElectra.commit();
128
- // Clear cache to ensure the cache of deneb fields is not used by new ELECTRA fields
129
- // biome-ignore lint/complexity/useLiteralKeys: It is a protected attribute
130
- stateElectra["clearCache"]();
131
- return stateElectra;
132
- }
133
114
  //# sourceMappingURL=upgradeStateToElectra.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeStateToElectra.js","sourceRoot":"","sources":["../../src/slot/upgradeStateToElectra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgradeStateToElectra.js","sourceRoot":"","sources":["../../src/slot/upgradeStateToElectra.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,4 @@ export declare function hasCompoundingWithdrawalCredential(withdrawalCredentials
4
4
  export declare function hasExecutionWithdrawalCredential(withdrawalCredentials: Uint8Array): boolean;
5
5
  export declare function switchToCompoundingValidator(state: CachedBeaconStateElectra, index: ValidatorIndex): void;
6
6
  export declare function queueExcessActiveBalance(state: CachedBeaconStateElectra, index: ValidatorIndex): void;
7
- export declare function queueEntireBalanceAndResetValidator(state: CachedBeaconStateElectra, index: ValidatorIndex): void;
8
7
  //# sourceMappingURL=electra.d.ts.map
@@ -1,5 +1,6 @@
1
- import { COMPOUNDING_WITHDRAWAL_PREFIX, FAR_FUTURE_EPOCH, MIN_ACTIVATION_BALANCE } from "@lodestar/params";
1
+ import { COMPOUNDING_WITHDRAWAL_PREFIX, GENESIS_SLOT, MIN_ACTIVATION_BALANCE } from "@lodestar/params";
2
2
  import { ssz } from "@lodestar/types";
3
+ import { G2_POINT_AT_INFINITY } from "../constants/constants.js";
3
4
  import { hasEth1WithdrawalCredential } from "./capella.js";
4
5
  export function hasCompoundingWithdrawalCredential(withdrawalCredentials) {
5
6
  return withdrawalCredentials[0] === COMPOUNDING_WITHDRAWAL_PREFIX;
@@ -9,39 +10,30 @@ export function hasExecutionWithdrawalCredential(withdrawalCredentials) {
9
10
  }
10
11
  export function switchToCompoundingValidator(state, index) {
11
12
  const validator = state.validators.get(index);
12
- if (hasEth1WithdrawalCredential(validator.withdrawalCredentials)) {
13
- // directly modifying the byte leads to ssz missing the modification resulting into
14
- // wrong root compute, although slicing can be avoided but anyway this is not going
15
- // to be a hot path so its better to clean slice and avoid side effects
16
- const newWithdrawalCredentials = validator.withdrawalCredentials.slice();
17
- newWithdrawalCredentials[0] = COMPOUNDING_WITHDRAWAL_PREFIX;
18
- validator.withdrawalCredentials = newWithdrawalCredentials;
19
- queueExcessActiveBalance(state, index);
20
- }
13
+ // directly modifying the byte leads to ssz missing the modification resulting into
14
+ // wrong root compute, although slicing can be avoided but anyway this is not going
15
+ // to be a hot path so its better to clean slice and avoid side effects
16
+ const newWithdrawalCredentials = validator.withdrawalCredentials.slice();
17
+ newWithdrawalCredentials[0] = COMPOUNDING_WITHDRAWAL_PREFIX;
18
+ validator.withdrawalCredentials = newWithdrawalCredentials;
19
+ queueExcessActiveBalance(state, index);
21
20
  }
22
21
  export function queueExcessActiveBalance(state, index) {
23
22
  const balance = state.balances.get(index);
24
23
  if (balance > MIN_ACTIVATION_BALANCE) {
24
+ const validator = state.validators.getReadonly(index);
25
25
  const excessBalance = balance - MIN_ACTIVATION_BALANCE;
26
26
  state.balances.set(index, MIN_ACTIVATION_BALANCE);
27
- const pendingBalanceDeposit = ssz.electra.PendingBalanceDeposit.toViewDU({
28
- index,
29
- amount: BigInt(excessBalance),
27
+ const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
28
+ pubkey: validator.pubkey,
29
+ withdrawalCredentials: validator.withdrawalCredentials,
30
+ amount: excessBalance,
31
+ // Use bls.G2_POINT_AT_INFINITY as a signature field placeholder
32
+ signature: G2_POINT_AT_INFINITY,
33
+ // Use GENESIS_SLOT to distinguish from a pending deposit request
34
+ slot: GENESIS_SLOT,
30
35
  });
31
- state.pendingBalanceDeposits.push(pendingBalanceDeposit);
36
+ state.pendingDeposits.push(pendingDeposit);
32
37
  }
33
38
  }
34
- export function queueEntireBalanceAndResetValidator(state, index) {
35
- const balance = state.balances.get(index);
36
- state.balances.set(index, 0);
37
- const validator = state.validators.get(index);
38
- validator.effectiveBalance = 0;
39
- state.epochCtx.effectiveBalanceIncrementsSet(index, 0);
40
- validator.activationEligibilityEpoch = FAR_FUTURE_EPOCH;
41
- const pendingBalanceDeposit = ssz.electra.PendingBalanceDeposit.toViewDU({
42
- index,
43
- amount: BigInt(balance),
44
- });
45
- state.pendingBalanceDeposits.push(pendingBalanceDeposit);
46
- }
47
39
  //# sourceMappingURL=electra.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"electra.js","sourceRoot":"","sources":["../../src/util/electra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAE,gBAAgB,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAiB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAC,2BAA2B,EAAC,MAAM,cAAc,CAAC;AAEzD,MAAM,UAAU,kCAAkC,CAAC,qBAAiC;IAClF,OAAO,qBAAqB,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,qBAAiC;IAChF,OAAO,CACL,kCAAkC,CAAC,qBAAqB,CAAC,IAAI,2BAA2B,CAAC,qBAAqB,CAAC,CAChH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA+B,EAAE,KAAqB;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,2BAA2B,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACjE,mFAAmF;QACnF,mFAAmF;QACnF,uEAAuE;QACvE,MAAM,wBAAwB,GAAG,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACzE,wBAAwB,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC;QAC5D,SAAS,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;QAC3D,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA+B,EAAE,KAAqB;IAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;QACvD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAElD,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YACvE,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC;SAC9B,CAAC,CAAC;QACH,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAA+B,EAAE,KAAqB;IACxG,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC/B,KAAK,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,SAAS,CAAC,0BAA0B,GAAG,gBAAgB,CAAC;IAExD,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC;QACvE,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"electra.js","sourceRoot":"","sources":["../../src/util/electra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAE,YAAY,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAiB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,2BAA2B,EAAC,MAAM,cAAc,CAAC;AAEzD,MAAM,UAAU,kCAAkC,CAAC,qBAAiC;IAClF,OAAO,qBAAqB,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,qBAAiC;IAChF,OAAO,CACL,kCAAkC,CAAC,qBAAqB,CAAC,IAAI,2BAA2B,CAAC,qBAAqB,CAAC,CAChH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA+B,EAAE,KAAqB;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE9C,mFAAmF;IACnF,mFAAmF;IACnF,uEAAuE;IACvE,MAAM,wBAAwB,GAAG,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACzE,wBAAwB,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC;IAC5D,SAAS,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;IAC3D,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA+B,EAAE,KAAqB;IAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;QACvD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAElD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;YACzD,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;YACtD,MAAM,EAAE,aAAa;YACrB,gEAAgE;YAChE,SAAS,EAAE,oBAAoB;YAC/B,iEAAiE;YACjE,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -121,10 +121,15 @@ export function applyDeposits(config, state, newDeposits, fullDepositDataRootLis
121
121
  if (fork >= ForkSeq.electra) {
122
122
  const stateElectra = state;
123
123
  stateElectra.commit();
124
- for (const { index: validatorIndex, amount } of stateElectra.pendingBalanceDeposits.getAllReadonly()) {
125
- increaseBalance(state, validatorIndex, Number(amount));
124
+ for (const { pubkey, amount } of stateElectra.pendingDeposits.getAllReadonly()) {
125
+ const validatorIndex = state.epochCtx.getValidatorIndex(pubkey);
126
+ if (validatorIndex === null) {
127
+ // Should not happen if the gensis state is correct
128
+ continue;
129
+ }
130
+ increaseBalance(state, validatorIndex, amount);
126
131
  }
127
- stateElectra.pendingBalanceDeposits = ssz.electra.PendingBalanceDeposits.defaultViewDU();
132
+ stateElectra.pendingDeposits = ssz.electra.PendingDeposits.defaultViewDU();
128
133
  }
129
134
  // Process activations
130
135
  const { epochCtx } = state;
@@ -1 +1 @@
1
- {"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/util/genesis.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAE5B,OAAO,EACP,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAwB,GAAG,EAAc,MAAM,iBAAiB,CAAC;AAGxE,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,yBAAyB,EAAE,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAC,uBAAuB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAKxD,uDAAuD;AAEvD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAuB,EAAE,KAA0B;IACrF,OAAO,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAuB,EAAE,KAA0B;IAC1F,OAAO,CACL,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;QACzE,MAAM,CAAC,kCAAkC,CAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,eAAgC,EAChC,iBAA2C;IAE3C,gCAAgC;IAChC,MAAM,WAAW,GAAG,cAAc,CAAC,4BAA4B,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAE5F,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;IACtE,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC;IAE9C,OAAO;IACP,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;IAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEpD,mGAAmG;IACnG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,eAAe,EAAE,YAAY,CAAC,OAAO;QACrC,cAAc,EAAE,OAAO;QACvB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC;KACxC,CAAC,CAAC;IAEH,qBAAqB;IAErB,4BAA4B;IAC5B,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEnF,0BAA0B;IAC1B,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC/D,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEjE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgC,EAAE,aAAsB;IACzF,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;IACzC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC,CAAC;AACnH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,KAAgC,EAAE,aAAqB;IAC7G,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB,EACvB,KAAgC,EAChC,WAA6B,EAC7B,uBAA+C;IAE/C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAW,EAAE,CAAC;IAEvC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/G,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC;IACpD,MAAM,YAAY,GAAG,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,EAAC,WAAW,EAAE,mBAAmB,EAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IAEtD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,sBAAsB,EAAE,CAAC;YAC3B,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC;YAC3E,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,mBAAmB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,mBAAmB,CAAC,YAAY,CAC3D,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACxD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAiC,CAAC;QACvD,YAAY,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAC,IAAI,YAAY,CAAC,sBAAsB,CAAC,cAAc,EAAE,EAAE,CAAC;YACnG,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,YAAY,CAAC,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;IAC3F,CAAC;IAED,sBAAsB;IACtB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IAC/C,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,0EAA0E;QAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1C,yBAAyB;QACzB,IAAI,SAAS,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,OAAO,GAAG,CAAC,OAAO,GAAG,2BAA2B,CAAC,EACjD,sBAAsB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CACxD,CAAC;QAEF,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC9C,QAAQ,CAAC,6BAA6B,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAE5D,IAAI,SAAS,CAAC,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;YACxD,SAAS,CAAC,0BAA0B,GAAG,aAAa,CAAC;YACrD,SAAS,CAAC,eAAe,GAAG,aAAa,CAAC;YAC1C,uBAAuB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,0CAA0C;IAC1C,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAE9D,OAAO,EAAC,uBAAuB,EAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAuB,EACvB,aAAsC,EACtC,aAAsB,EACtB,aAA0B,EAC1B,QAA0B,EAC1B,uBAA+C,EAC/C,sBAKC;IAED,MAAM,SAAS,GAAG,qBAAqB;IACrC,wFAAwF;IACxF,6FAA6F;IAC7F,MAAM,EACN,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAClC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAC9F,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7C,iFAAiF;IACjF,kEAAkE;IAClE,kCAAkC;IAClC,gEAAgE;IAChE,2EAA2E;IAC3E,yEAAyE;IACzE,iFAAiF;IACjF,gEAAgE;IAChE,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAC,sBAAsB,EAAE,IAAI,EAAC,CAAC,CAAC;IAEhG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC7C,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEzC,mBAAmB;IACnB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAEhE,wEAAwE;IACxE,KAAK,CAAC,MAAM,EAAE,CAAC;IACf,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;IAElG,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAC,aAAa,EAAC,GAAG,oBAAoB,CAC1C,IAAI,EACJ,KAAK,EACL,sBAAsB,EACtB,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAC1C,CAAC;QACF,MAAM,WAAW,GAAG,KAAuD,CAAC;QAC5E,WAAW,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC7D,WAAW,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpF,WAAW,CAAC,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,KAA0D,CAAC;QAClF,cAAc,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACpE,cAAc,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACnE,cAAc,CAAC,4BAA4B;YACxC,sBAAuF;gBACxF,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAwD,CAAC;QAC9E,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/D,YAAY,CAAC,4BAA4B;YACtC,sBAAqF;gBACtF,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,KAAsD,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC5D,UAAU,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC3D,UAAU,CAAC,4BAA4B;YACpC,sBAAmF;gBACpF,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAwD,CAAC;QAC9E,YAAY,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAC/D,YAAY,CAAC,4BAA4B;YACtC,sBAAqF;gBACtF,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;QACrD,YAAY,CAAC,yBAAyB,GAAG,kCAAkC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/util/genesis.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,5 @@ export declare function getBalanceChurnLimit(epochCtx: EpochCache): number;
25
25
  export declare function getActivationExitChurnLimit(epochCtx: EpochCache): number;
26
26
  export declare function getConsolidationChurnLimit(epochCtx: EpochCache): number;
27
27
  export declare function getMaxEffectiveBalance(withdrawalCredentials: Uint8Array): number;
28
- export declare function getActiveBalance(state: CachedBeaconStateElectra, validatorIndex: ValidatorIndex): number;
29
28
  export declare function getPendingBalanceToWithdraw(state: CachedBeaconStateElectra, validatorIndex: ValidatorIndex): number;
30
29
  //# sourceMappingURL=validator.d.ts.map
@@ -58,10 +58,6 @@ export function getMaxEffectiveBalance(withdrawalCredentials) {
58
58
  }
59
59
  return MIN_ACTIVATION_BALANCE;
60
60
  }
61
- export function getActiveBalance(state, validatorIndex) {
62
- const validatorMaxEffectiveBalance = getMaxEffectiveBalance(state.validators.getReadonly(validatorIndex).withdrawalCredentials);
63
- return Math.min(state.balances.get(validatorIndex), validatorMaxEffectiveBalance);
64
- }
65
61
  export function getPendingBalanceToWithdraw(state, validatorIndex) {
66
62
  return state.pendingPartialWithdrawals
67
63
  .getAllReadonly()
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,kCAAkC,EAAC,MAAM,cAAc,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAA2B,EAAE,KAAY;IACzE,OAAO,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2B,EAAE,KAAY;IAC5E,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;AACzG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA0B,EAAE,KAAY;IAChF,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAuB,EAAE,IAAa,EAAE,oBAA4B;IAC1G,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oCAAoC,EAAE,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,oBAA4B;IACjF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAoB;IACvD,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAC/C,CAAC,QAAQ,CAAC,4BAA4B,GAAG,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,2BAA2B,CAC7G,CAAC,CAAC,mCAAmC;IAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAE1G,OAAO,KAAK,GAAG,CAAC,KAAK,GAAG,2BAA2B,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAoB;IAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,yCAAyC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAoB;IAC7D,OAAO,oBAAoB,CAAC,QAAQ,CAAC,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,qBAAiC;IACtE,iEAAiE;IACjE,IAAI,kCAAkC,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC9D,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAA+B,EAAE,cAA8B;IACzG,OAAO,KAAK,CAAC,yBAAyB;SACnC,cAAc,EAAE;SAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC;SAC/C,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,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.23.0-dev.de0d6ab89b",
14
+ "version": "1.23.0-dev.e6c1c5b3e3",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -65,10 +65,10 @@
65
65
  "@chainsafe/pubkey-index-map": "2.0.0",
66
66
  "@chainsafe/ssz": "^0.17.1",
67
67
  "@chainsafe/swap-or-not-shuffle": "^0.0.2",
68
- "@lodestar/config": "1.23.0-dev.de0d6ab89b",
69
- "@lodestar/params": "1.23.0-dev.de0d6ab89b",
70
- "@lodestar/types": "1.23.0-dev.de0d6ab89b",
71
- "@lodestar/utils": "1.23.0-dev.de0d6ab89b",
68
+ "@lodestar/config": "1.23.0-dev.e6c1c5b3e3",
69
+ "@lodestar/params": "1.23.0-dev.e6c1c5b3e3",
70
+ "@lodestar/types": "1.23.0-dev.e6c1c5b3e3",
71
+ "@lodestar/utils": "1.23.0-dev.e6c1c5b3e3",
72
72
  "bigint-buffer": "^1.1.5",
73
73
  "immutable": "^4.3.2"
74
74
  },
@@ -78,5 +78,5 @@
78
78
  "beacon",
79
79
  "blockchain"
80
80
  ],
81
- "gitHead": "4f57dcaee73e84a8f30f052c4e616779f3a5ab4f"
81
+ "gitHead": "138461c874f12a8ce275b8e26b2f5aa319f70843"
82
82
  }
@@ -1,66 +0,0 @@
1
- import { FAR_FUTURE_EPOCH } from "@lodestar/params";
2
- import { increaseBalance } from "../util/balance.js";
3
- import { getActivationExitChurnLimit } from "../util/validator.js";
4
- /**
5
- * Starting from Electra:
6
- * Process pending balance deposits from state subject to churn limit and depsoitBalanceToConsume.
7
- * For each eligible `deposit`, call `increaseBalance()`.
8
- * Remove the processed deposits from `state.pendingBalanceDeposits`.
9
- * Update `state.depositBalanceToConsume` for the next epoch
10
- *
11
- * TODO Electra: Update ssz library to support batch push to `pendingBalanceDeposits`
12
- */
13
- export function processPendingBalanceDeposits(state, cache) {
14
- const nextEpoch = state.epochCtx.epoch + 1;
15
- const availableForProcessing = state.depositBalanceToConsume + BigInt(getActivationExitChurnLimit(state.epochCtx));
16
- let processedAmount = 0n;
17
- let nextDepositIndex = 0;
18
- const depositsToPostpone = [];
19
- const validators = state.validators;
20
- const cachedBalances = cache.balances;
21
- for (const deposit of state.pendingBalanceDeposits.getAllReadonly()) {
22
- const { amount, index: depositIndex } = deposit;
23
- const validator = validators.getReadonly(depositIndex);
24
- // Validator is exiting, postpone the deposit until after withdrawable epoch
25
- if (validator.exitEpoch < FAR_FUTURE_EPOCH) {
26
- if (nextEpoch <= validator.withdrawableEpoch) {
27
- depositsToPostpone.push(deposit);
28
- }
29
- else {
30
- // Deposited balance will never become active. Increase balance but do not consume churn
31
- increaseBalance(state, depositIndex, Number(amount));
32
- if (cachedBalances) {
33
- cachedBalances[depositIndex] += Number(amount);
34
- }
35
- }
36
- }
37
- else {
38
- // Validator is not exiting, attempt to process deposit
39
- if (processedAmount + amount > availableForProcessing) {
40
- // Deposit does not fit in the churn, no more deposit processing in this epoch.
41
- break;
42
- }
43
- // Deposit fits in the churn, process it. Increase balance and consume churn.
44
- increaseBalance(state, depositIndex, Number(amount));
45
- if (cachedBalances) {
46
- cachedBalances[depositIndex] += Number(amount);
47
- }
48
- processedAmount = processedAmount + amount;
49
- }
50
- // Regardless of how the deposit was handled, we move on in the queue.
51
- nextDepositIndex++;
52
- }
53
- const remainingPendingBalanceDeposits = state.pendingBalanceDeposits.sliceFrom(nextDepositIndex);
54
- state.pendingBalanceDeposits = remainingPendingBalanceDeposits;
55
- if (remainingPendingBalanceDeposits.length === 0) {
56
- state.depositBalanceToConsume = 0n;
57
- }
58
- else {
59
- state.depositBalanceToConsume = availableForProcessing - processedAmount;
60
- }
61
- // TODO Electra: add a function in ListCompositeTreeView to support batch push operation
62
- for (const deposit of depositsToPostpone) {
63
- state.pendingBalanceDeposits.push(deposit);
64
- }
65
- }
66
- //# sourceMappingURL=processPendingBalanceDeposits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processPendingBalanceDeposits.js","sourceRoot":"","sources":["../../src/epoch/processPendingBalanceDeposits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA+B,EAAE,KAA2B;IACxG,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3C,MAAM,sBAAsB,GAAG,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnH,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,sBAAsB,CAAC,cAAc,EAAE,EAAE,CAAC;QACpE,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEvD,4EAA4E;QAC5E,IAAI,SAAS,CAAC,SAAS,GAAG,gBAAgB,EAAE,CAAC;YAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;gBAC7C,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,wFAAwF;gBACxF,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uDAAuD;YACvD,IAAI,eAAe,GAAG,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBACtD,+EAA+E;gBAC/E,MAAM;YACR,CAAC;YACD,6EAA6E;YAC7E,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,eAAe,GAAG,eAAe,GAAG,MAAM,CAAC;QAC7C,CAAC;QACD,sEAAsE;QACtE,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,+BAA+B,GAAG,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACjG,KAAK,CAAC,sBAAsB,GAAG,+BAA+B,CAAC;IAE/D,IAAI,+BAA+B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,uBAAuB,GAAG,sBAAsB,GAAG,eAAe,CAAC;IAC3E,CAAC;IAED,wFAAwF;IACxF,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}