@lodestar/state-transition 1.23.0-dev.f87ee1ab56 → 1.23.0-dev.fa969ca6fd

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 (105) hide show
  1. package/lib/block/isValidIndexedAttestation.js +2 -6
  2. package/lib/block/isValidIndexedAttestation.js.map +1 -1
  3. package/lib/block/processAttestationPhase0.js +4 -8
  4. package/lib/block/processAttestationPhase0.js.map +1 -1
  5. package/lib/block/processConsolidationRequest.js +54 -8
  6. package/lib/block/processConsolidationRequest.js.map +1 -1
  7. package/lib/block/processDeposit.d.ts +4 -1
  8. package/lib/block/processDeposit.js +33 -37
  9. package/lib/block/processDeposit.js.map +1 -1
  10. package/lib/block/processDepositRequest.d.ts +1 -2
  11. package/lib/block/processDepositRequest.js +11 -3
  12. package/lib/block/processDepositRequest.js.map +1 -1
  13. package/lib/block/processEth1Data.js +1 -3
  14. package/lib/block/processEth1Data.js.map +1 -1
  15. package/lib/block/processOperations.js +1 -1
  16. package/lib/block/processOperations.js.map +1 -1
  17. package/lib/block/processSyncCommittee.js +1 -3
  18. package/lib/block/processSyncCommittee.js.map +1 -1
  19. package/lib/block/processWithdrawalRequest.js +1 -1
  20. package/lib/block/processWithdrawalRequest.js.map +1 -1
  21. package/lib/block/processWithdrawals.js +3 -2
  22. package/lib/block/processWithdrawals.js.map +1 -1
  23. package/lib/cache/epochCache.d.ts +5 -3
  24. package/lib/cache/epochCache.js +22 -23
  25. package/lib/cache/epochCache.js.map +1 -1
  26. package/lib/cache/epochTransitionCache.d.ts +0 -5
  27. package/lib/cache/epochTransitionCache.js +0 -2
  28. package/lib/cache/epochTransitionCache.js.map +1 -1
  29. package/lib/cache/pubkeyCache.d.ts +1 -9
  30. package/lib/cache/pubkeyCache.js +0 -18
  31. package/lib/cache/pubkeyCache.js.map +1 -1
  32. package/lib/cache/stateCache.js +2 -0
  33. package/lib/cache/stateCache.js.map +1 -1
  34. package/lib/cache/syncCommitteeCache.d.ts +1 -1
  35. package/lib/cache/syncCommitteeCache.js +1 -1
  36. package/lib/cache/syncCommitteeCache.js.map +1 -1
  37. package/lib/constants/constants.d.ts +3 -4
  38. package/lib/constants/constants.js +4 -4
  39. package/lib/constants/constants.js.map +1 -1
  40. package/lib/epoch/index.d.ts +3 -3
  41. package/lib/epoch/index.js +5 -5
  42. package/lib/epoch/index.js.map +1 -1
  43. package/lib/epoch/processEffectiveBalanceUpdates.js +4 -7
  44. package/lib/epoch/processEffectiveBalanceUpdates.js.map +1 -1
  45. package/lib/epoch/processPendingConsolidations.js +7 -12
  46. package/lib/epoch/processPendingConsolidations.js.map +1 -1
  47. package/lib/epoch/{processPendingBalanceDeposits.d.ts → processPendingDeposits.d.ts} +4 -4
  48. package/lib/epoch/processPendingDeposits.js +102 -0
  49. package/lib/epoch/processPendingDeposits.js.map +1 -0
  50. package/lib/epoch/processSlashings.js +8 -2
  51. package/lib/epoch/processSlashings.js.map +1 -1
  52. package/lib/index.d.ts +2 -1
  53. package/lib/index.js +2 -1
  54. package/lib/index.js.map +1 -1
  55. package/lib/metrics.js +2 -0
  56. package/lib/metrics.js.map +1 -1
  57. package/lib/signatureSets/attesterSlashings.js +1 -3
  58. package/lib/signatureSets/attesterSlashings.js.map +1 -1
  59. package/lib/signatureSets/proposerSlashings.js +1 -3
  60. package/lib/signatureSets/proposerSlashings.js.map +1 -1
  61. package/lib/slot/upgradeStateToAltair.js +1 -0
  62. package/lib/slot/upgradeStateToAltair.js.map +1 -1
  63. package/lib/slot/upgradeStateToCapella.js +1 -0
  64. package/lib/slot/upgradeStateToCapella.js.map +1 -1
  65. package/lib/slot/upgradeStateToDeneb.js +1 -0
  66. package/lib/slot/upgradeStateToDeneb.js.map +1 -1
  67. package/lib/slot/upgradeStateToElectra.d.ts +0 -1
  68. package/lib/slot/upgradeStateToElectra.js +19 -36
  69. package/lib/slot/upgradeStateToElectra.js.map +1 -1
  70. package/lib/util/balance.d.ts +1 -1
  71. package/lib/util/blindedBlock.js +17 -13
  72. package/lib/util/blindedBlock.js.map +1 -1
  73. package/lib/util/computeAnchorCheckpoint.js.map +1 -1
  74. package/lib/util/deposit.js +2 -6
  75. package/lib/util/deposit.js.map +1 -1
  76. package/lib/util/electra.d.ts +0 -1
  77. package/lib/util/electra.js +19 -27
  78. package/lib/util/electra.js.map +1 -1
  79. package/lib/util/epochShuffling.d.ts +1 -0
  80. package/lib/util/epochShuffling.js +31 -12
  81. package/lib/util/epochShuffling.js.map +1 -1
  82. package/lib/util/execution.js +5 -9
  83. package/lib/util/execution.js.map +1 -1
  84. package/lib/util/genesis.js +8 -3
  85. package/lib/util/genesis.js.map +1 -1
  86. package/lib/util/index.d.ts +0 -1
  87. package/lib/util/index.js +0 -1
  88. package/lib/util/index.js.map +1 -1
  89. package/lib/util/loadState/loadValidator.js +1 -3
  90. package/lib/util/loadState/loadValidator.js.map +1 -1
  91. package/lib/util/seed.js +1 -1
  92. package/lib/util/seed.js.map +1 -1
  93. package/lib/util/shufflingDecisionRoot.js +5 -11
  94. package/lib/util/shufflingDecisionRoot.js.map +1 -1
  95. package/lib/util/validator.d.ts +0 -1
  96. package/lib/util/validator.js +2 -10
  97. package/lib/util/validator.js.map +1 -1
  98. package/lib/util/weakSubjectivity.js +0 -1
  99. package/lib/util/weakSubjectivity.js.map +1 -1
  100. package/package.json +11 -9
  101. package/lib/epoch/processPendingBalanceDeposits.js +0 -68
  102. package/lib/epoch/processPendingBalanceDeposits.js.map +0 -1
  103. package/lib/util/shuffle.d.ts +0 -9
  104. package/lib/util/shuffle.js +0 -197
  105. package/lib/util/shuffle.js.map +0 -1
@@ -11,9 +11,7 @@ export function isValidIndexedAttestation(state, indexedAttestation, verifySigna
11
11
  if (verifySignature) {
12
12
  return verifySignatureSet(getIndexedAttestationSignatureSet(state, indexedAttestation));
13
13
  }
14
- else {
15
- return true;
16
- }
14
+ return true;
17
15
  }
18
16
  export function isValidIndexedAttestationBigint(state, indexedAttestation, verifySignature) {
19
17
  if (!isValidIndexedAttestationIndices(state, indexedAttestation.attestingIndices)) {
@@ -22,9 +20,7 @@ export function isValidIndexedAttestationBigint(state, indexedAttestation, verif
22
20
  if (verifySignature) {
23
21
  return verifySignatureSet(getIndexedAttestationBigintSignatureSet(state, indexedAttestation));
24
22
  }
25
- else {
26
- return true;
27
- }
23
+ return true;
28
24
  }
29
25
  /**
30
26
  * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
@@ -1 +1 @@
1
- {"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AAErH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAgC,EAChC,kBAA6C,EAC7C,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAgC,EAChC,kBAAmD,EACnD,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,uCAAuC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAChG,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAAgC,EAAE,OAAiB;IAClG,+BAA+B;IAC/B,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO;QACpD,CAAC,CAAC,4BAA4B,GAAG,uBAAuB;QACxD,CAAC,CAAC,4BAA4B,CAAC;IACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,mDAAmD;IACnD,oFAAoF;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,yFAAyF;IACzF,wEAAwE;IACxE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AAErH;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAgC,EAChC,kBAA6C,EAC7C,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAgC,EAChC,kBAAmD,EACnD,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,uCAAuC,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,KAAgC,EAAE,OAAiB;IAClG,+BAA+B;IAC/B,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO;QACpD,CAAC,CAAC,4BAA4B,GAAG,uBAAuB;QACxD,CAAC,CAAC,4BAA4B,CAAC;IACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,mDAAmD;IACnD,oFAAoF;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,yFAAyF;IACzF,wEAAwE;IACxE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -64,11 +64,9 @@ export function validateAttestation(fork, state, attestation) {
64
64
  if (committeeIndices.length === 0) {
65
65
  throw Error("Attestation should have at least one committee bit set");
66
66
  }
67
- else {
68
- const lastCommitteeIndex = committeeIndices[committeeIndices.length - 1];
69
- if (lastCommitteeIndex >= committeeCount) {
70
- throw new Error(`Attestation committee index exceeds committee count: lastCommitteeIndex=${lastCommitteeIndex} numCommittees=${committeeCount}`);
71
- }
67
+ const lastCommitteeIndex = committeeIndices[committeeIndices.length - 1];
68
+ if (lastCommitteeIndex >= committeeCount) {
69
+ throw new Error(`Attestation committee index exceeds committee count: lastCommitteeIndex=${lastCommitteeIndex} numCommittees=${committeeCount}`);
72
70
  }
73
71
  // Get total number of attestation participant of every committee specified
74
72
  const participantCount = committeeIndices
@@ -94,9 +92,7 @@ export function isTimelyTarget(fork, inclusionDistance) {
94
92
  if (fork >= ForkSeq.deneb) {
95
93
  return true;
96
94
  }
97
- else {
98
- return inclusionDistance <= SLOTS_PER_EPOCH;
99
- }
95
+ return inclusionDistance <= SLOTS_PER_EPOCH;
100
96
  }
101
97
  export function checkpointToStr(checkpoint) {
102
98
  return `${toRootHex(checkpoint.root)}:${checkpoint.epoch}`;
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAqC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAC,+BAA+B,EAAE,eAAe,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA8B,EAC9B,WAA+B,EAC/B,eAAe,GAAG,IAAI;IAEtB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAChE,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,WAAW,CAAC,eAAe;QAC5C,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI;QAChC,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CACb,0EAA0E,eAAe,CACvF,IAAI,CAAC,MAAM,CACZ,+BAA+B,eAAe,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,2EAA2E,eAAe,CACxF,IAAI,CAAC,MAAM,CACZ,gCAAgC,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;QACpH,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,KAAgC,EAAE,WAAwB;IAC3G,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAExE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CACb,6DAA6D;YAC3D,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,iBAAiB,QAAQ,CAAC,KAAK,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,kBAAkB,aAAa,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,+BAA+B,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,KAAK,CACb,gDAAgD;YAC9C,QAAQ,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,GAAG,+BAA+B,KAAK,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAC5G,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,6CAA6C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACvF,MAAM,kBAAkB,GAAG,WAAkC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAE9E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzE,IAAI,kBAAkB,IAAI,cAAc,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,2EAA2E,kBAAkB,kBAAkB,cAAc,EAAE,CAChI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,gBAAgB;aACtC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC;aACtF,MAAM,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,GAAG,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CACV,kBAAkB,CAAC,eAAe,CAAC,MAAM,EACzC,gBAAgB,EAChB,kHAAkH,WAAW,CAAC,eAAe,CAAC,MAAM,qBAAqB,gBAAgB,EAAE,CAC5L,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,kEAAkE;gBAChE,kBAAkB,IAAI,CAAC,KAAK,mBAAmB,cAAc,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,WAAW,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,uEAAuE;gBACrE,yBAAyB,WAAW,CAAC,eAAe,CAAC,MAAM,oBAAoB,SAAS,CAAC,MAAM,EAAE,CACpG,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,IAAa,EAAE,iBAAuB;IACnE,oEAAoE;IACpE,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,iBAAiB,IAAI,eAAe,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAA6B;IAC3D,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,22 @@
1
1
  import { ssz } from "@lodestar/types";
2
2
  import { FAR_FUTURE_EPOCH, MIN_ACTIVATION_BALANCE, PENDING_CONSOLIDATIONS_LIMIT } from "@lodestar/params";
3
3
  import { getConsolidationChurnLimit, isActiveValidator } from "../util/validator.js";
4
- import { hasExecutionWithdrawalCredential } from "../util/electra.js";
4
+ import { hasExecutionWithdrawalCredential, switchToCompoundingValidator } from "../util/electra.js";
5
5
  import { computeConsolidationEpochAndUpdateChurn } from "../util/epoch.js";
6
+ import { hasEth1WithdrawalCredential } from "../util/capella.js";
7
+ // TODO Electra: Clean up necessary as there is a lot of overlap with isValidSwitchToCompoundRequest
6
8
  export function processConsolidationRequest(state, consolidationRequest) {
9
+ const { sourcePubkey, targetPubkey, sourceAddress } = consolidationRequest;
10
+ const sourceIndex = state.epochCtx.getValidatorIndex(sourcePubkey);
11
+ const targetIndex = state.epochCtx.getValidatorIndex(targetPubkey);
12
+ if (sourceIndex === null || targetIndex === null) {
13
+ return;
14
+ }
15
+ if (isValidSwitchToCompoundRequest(state, consolidationRequest)) {
16
+ switchToCompoundingValidator(state, sourceIndex);
17
+ // Early return since we have already switched validator to compounding
18
+ return;
19
+ }
7
20
  // If the pending consolidations queue is full, consolidation requests are ignored
8
21
  if (state.pendingConsolidations.length >= PENDING_CONSOLIDATIONS_LIMIT) {
9
22
  return;
@@ -12,12 +25,6 @@ export function processConsolidationRequest(state, consolidationRequest) {
12
25
  if (getConsolidationChurnLimit(state.epochCtx) <= MIN_ACTIVATION_BALANCE) {
13
26
  return;
14
27
  }
15
- const { sourcePubkey, targetPubkey } = consolidationRequest;
16
- const sourceIndex = state.epochCtx.getValidatorIndex(sourcePubkey);
17
- const targetIndex = state.epochCtx.getValidatorIndex(targetPubkey);
18
- if (sourceIndex === undefined || targetIndex === undefined) {
19
- return;
20
- }
21
28
  // Verify that source != target, so a consolidation cannot be used as an exit.
22
29
  if (sourceIndex === targetIndex) {
23
30
  return;
@@ -31,7 +38,7 @@ export function processConsolidationRequest(state, consolidationRequest) {
31
38
  !hasExecutionWithdrawalCredential(targetValidator.withdrawalCredentials)) {
32
39
  return;
33
40
  }
34
- if (Buffer.compare(sourceWithdrawalAddress, consolidationRequest.sourceAddress) !== 0) {
41
+ if (Buffer.compare(sourceWithdrawalAddress, sourceAddress) !== 0) {
35
42
  return;
36
43
  }
37
44
  // Verify the source and the target are active
@@ -51,5 +58,44 @@ export function processConsolidationRequest(state, consolidationRequest) {
51
58
  targetIndex,
52
59
  });
53
60
  state.pendingConsolidations.push(pendingConsolidation);
61
+ // Churn any target excess active balance of target and raise its max
62
+ if (hasEth1WithdrawalCredential(targetValidator.withdrawalCredentials)) {
63
+ switchToCompoundingValidator(state, targetIndex);
64
+ }
65
+ }
66
+ /**
67
+ * Determine if we should set consolidation target validator to compounding credential
68
+ */
69
+ function isValidSwitchToCompoundRequest(state, consolidationRequest) {
70
+ const { sourcePubkey, targetPubkey, sourceAddress } = consolidationRequest;
71
+ const sourceIndex = state.epochCtx.getValidatorIndex(sourcePubkey);
72
+ const targetIndex = state.epochCtx.getValidatorIndex(targetPubkey);
73
+ // Verify pubkey exists
74
+ if (sourceIndex === null) {
75
+ return false;
76
+ }
77
+ // Switch to compounding requires source and target be equal
78
+ if (sourceIndex !== targetIndex) {
79
+ return false;
80
+ }
81
+ const sourceValidator = state.validators.getReadonly(sourceIndex);
82
+ const sourceWithdrawalAddress = sourceValidator.withdrawalCredentials.subarray(12);
83
+ // Verify request has been authorized
84
+ if (Buffer.compare(sourceWithdrawalAddress, sourceAddress) !== 0) {
85
+ return false;
86
+ }
87
+ // Verify source withdrawal credentials
88
+ if (!hasEth1WithdrawalCredential(sourceValidator.withdrawalCredentials)) {
89
+ return false;
90
+ }
91
+ // Verify the source is active
92
+ if (!isActiveValidator(sourceValidator, state.epochCtx.epoch)) {
93
+ return false;
94
+ }
95
+ // Verify exit for source has not been initiated
96
+ if (sourceValidator.exitEpoch !== FAR_FUTURE_EPOCH) {
97
+ return false;
98
+ }
99
+ return true;
54
100
  }
55
101
  //# sourceMappingURL=processConsolidationRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGxG,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,gCAAgC,EAAC,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAC,uCAAuC,EAAC,MAAM,kBAAkB,CAAC;AAEzE,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,oBAAkD;IAElD,kFAAkF;IAClF,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IAED,iGAAiG;IACjG,IAAI,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,EAAC,YAAY,EAAE,YAAY,EAAC,GAAG,oBAAoB,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE1C,gCAAgC;IAChC,IACE,CAAC,gCAAgC,CAAC,eAAe,CAAC,qBAAqB,CAAC;QACxE,CAAC,gCAAgC,CAAC,eAAe,CAAC,qBAAqB,CAAC,EACxE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACtF,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO;IACT,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,uCAAuC,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3G,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,eAAe,CAAC,iBAAiB,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC;IAEjG,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QACrE,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGxG,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,gCAAgC,EAAE,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAC,uCAAuC,EAAC,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,oBAAoB,CAAC;AAE/D,oGAAoG;AACpG,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,oBAAkD;IAElD,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,oBAAoB,CAAC;IACzE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAI,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAChE,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACjD,uEAAuE;QACvE,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IAED,iGAAiG;IACjG,IAAI,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACzE,OAAO;IACT,CAAC;IACD,8EAA8E;IAC9E,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE1C,gCAAgC;IAChC,IACE,CAAC,gCAAgC,CAAC,eAAe,CAAC,qBAAqB,CAAC;QACxE,CAAC,gCAAgC,CAAC,eAAe,CAAC,qBAAqB,CAAC,EACxE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO;IACT,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,uCAAuC,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3G,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,eAAe,CAAC,iBAAiB,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC;IAEjG,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QACrE,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEvD,qEAAqE;IACrE,IAAI,2BAA2B,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvE,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CACrC,KAA+B,EAC/B,oBAAkD;IAElD,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,oBAAoB,CAAC;IACzE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,uBAAuB;IACvB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IAC5D,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnF,qCAAqC;IACrC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,7 +1,8 @@
1
- import { phase0 } from "@lodestar/types";
1
+ import { BLSPubkey, Bytes32, UintNum64, phase0 } from "@lodestar/types";
2
2
  import { ForkSeq } from "@lodestar/params";
3
3
  import { DepositData } from "@lodestar/types/lib/phase0/types.js";
4
4
  import { DepositRequest } from "@lodestar/types/lib/electra/types.js";
5
+ import { BeaconConfig } from "@lodestar/config";
5
6
  import { CachedBeaconStateAllForks } from "../types.js";
6
7
  /**
7
8
  * Process a Deposit operation. Potentially adds a new validator to the registry. Mutates the validators and balances
@@ -16,4 +17,6 @@ export declare function processDeposit(fork: ForkSeq, state: CachedBeaconStateAl
16
17
  *
17
18
  */
18
19
  export declare function applyDeposit(fork: ForkSeq, state: CachedBeaconStateAllForks, deposit: DepositData | DepositRequest): void;
20
+ export declare function addValidatorToRegistry(fork: ForkSeq, state: CachedBeaconStateAllForks, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64): void;
21
+ export declare function isValidDepositSignature(config: BeaconConfig, pubkey: Uint8Array, withdrawalCredentials: Uint8Array, amount: number, depositSignature: Uint8Array): boolean;
19
22
  //# sourceMappingURL=processDeposit.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { PublicKey, Signature, verify } from "@chainsafe/blst";
2
2
  import { ssz } from "@lodestar/types";
3
3
  import { verifyMerkleBranch } from "@lodestar/utils";
4
- import { DEPOSIT_CONTRACT_TREE_DEPTH, DOMAIN_DEPOSIT, EFFECTIVE_BALANCE_INCREMENT, FAR_FUTURE_EPOCH, ForkSeq, MAX_EFFECTIVE_BALANCE, } from "@lodestar/params";
4
+ import { DEPOSIT_CONTRACT_TREE_DEPTH, DOMAIN_DEPOSIT, EFFECTIVE_BALANCE_INCREMENT, FAR_FUTURE_EPOCH, ForkSeq, GENESIS_SLOT, MAX_EFFECTIVE_BALANCE, } from "@lodestar/params";
5
5
  import { ZERO_HASH } from "../constants/index.js";
6
- import { computeDomain, computeSigningRoot, hasCompoundingWithdrawalCredential, hasEth1WithdrawalCredential, increaseBalance, switchToCompoundingValidator, } from "../util/index.js";
6
+ import { computeDomain, computeSigningRoot, getMaxEffectiveBalance, increaseBalance } from "../util/index.js";
7
7
  /**
8
8
  * Process a Deposit operation. Potentially adds a new validator to the registry. Mutates the validators and balances
9
9
  * trees, pushing contigious values at the end.
@@ -25,38 +25,45 @@ export function processDeposit(fork, state, deposit) {
25
25
  *
26
26
  */
27
27
  export function applyDeposit(fork, state, deposit) {
28
- const { config, validators, epochCtx } = state;
29
- const { pubkey, withdrawalCredentials, amount } = deposit;
28
+ const { config, epochCtx, validators } = state;
29
+ const { pubkey, withdrawalCredentials, amount, signature } = deposit;
30
30
  const cachedIndex = epochCtx.getValidatorIndex(pubkey);
31
- if (cachedIndex === undefined || !Number.isSafeInteger(cachedIndex) || cachedIndex >= validators.length) {
32
- if (isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, deposit.signature)) {
33
- addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amount);
31
+ const isNewValidator = cachedIndex === null || !Number.isSafeInteger(cachedIndex) || cachedIndex >= validators.length;
32
+ if (fork < ForkSeq.electra) {
33
+ if (isNewValidator) {
34
+ if (isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, signature)) {
35
+ addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amount);
36
+ }
34
37
  }
35
- }
36
- else {
37
- if (fork < ForkSeq.electra) {
38
+ else {
38
39
  // increase balance by deposit amount right away pre-electra
39
40
  increaseBalance(state, cachedIndex, amount);
40
41
  }
41
- else if (fork >= ForkSeq.electra) {
42
- const stateElectra = state;
43
- const pendingBalanceDeposit = ssz.electra.PendingBalanceDeposit.toViewDU({
44
- index: cachedIndex,
45
- amount: BigInt(amount),
46
- });
47
- stateElectra.pendingBalanceDeposits.push(pendingBalanceDeposit);
48
- if (hasCompoundingWithdrawalCredential(withdrawalCredentials) &&
49
- hasEth1WithdrawalCredential(validators.getReadonly(cachedIndex).withdrawalCredentials) &&
50
- isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, deposit.signature)) {
51
- switchToCompoundingValidator(stateElectra, cachedIndex);
42
+ }
43
+ else {
44
+ const stateElectra = state;
45
+ const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
46
+ pubkey,
47
+ withdrawalCredentials,
48
+ amount,
49
+ signature,
50
+ slot: GENESIS_SLOT, // Use GENESIS_SLOT to distinguish from a pending deposit request
51
+ });
52
+ if (isNewValidator) {
53
+ if (isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, deposit.signature)) {
54
+ addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, 0);
55
+ stateElectra.pendingDeposits.push(pendingDeposit);
52
56
  }
53
57
  }
58
+ else {
59
+ stateElectra.pendingDeposits.push(pendingDeposit);
60
+ }
54
61
  }
55
62
  }
56
- function addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amount) {
63
+ export function addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amount) {
57
64
  const { validators, epochCtx } = state;
58
65
  // add validator and balance entries
59
- const effectiveBalance = fork < ForkSeq.electra ? Math.min(amount - (amount % EFFECTIVE_BALANCE_INCREMENT), MAX_EFFECTIVE_BALANCE) : 0;
66
+ const effectiveBalance = Math.min(amount - (amount % EFFECTIVE_BALANCE_INCREMENT), fork < ForkSeq.electra ? MAX_EFFECTIVE_BALANCE : getMaxEffectiveBalance(withdrawalCredentials));
60
67
  validators.push(ssz.phase0.Validator.toViewDU({
61
68
  pubkey,
62
69
  withdrawalCredentials,
@@ -84,20 +91,9 @@ function addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amou
84
91
  stateAltair.previousEpochParticipation.push(0);
85
92
  stateAltair.currentEpochParticipation.push(0);
86
93
  }
87
- if (fork < ForkSeq.electra) {
88
- state.balances.push(amount);
89
- }
90
- else if (fork >= ForkSeq.electra) {
91
- state.balances.push(0);
92
- const stateElectra = state;
93
- const pendingBalanceDeposit = ssz.electra.PendingBalanceDeposit.toViewDU({
94
- index: validatorIndex,
95
- amount: BigInt(amount),
96
- });
97
- stateElectra.pendingBalanceDeposits.push(pendingBalanceDeposit);
98
- }
94
+ state.balances.push(amount);
99
95
  }
100
- function isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, depositSignature) {
96
+ export function isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, depositSignature) {
101
97
  // verify the deposit signature (proof of posession) which is not checked by the deposit contract
102
98
  const depositMessage = {
103
99
  pubkey,
@@ -113,7 +109,7 @@ function isValidDepositSignature(config, pubkey, withdrawalCredentials, amount,
113
109
  const signature = Signature.fromBytes(depositSignature, true);
114
110
  return verify(signingRoot, publicKey, signature);
115
111
  }
116
- catch (e) {
112
+ catch (_e) {
117
113
  return false; // Catch all BLS errors: failed key validation, failed signature validation, invalid signature
118
114
  }
119
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processDeposit.js","sourceRoot":"","sources":["../../src/block/processDeposit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAwC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,2BAA2B,EAC3B,gBAAgB,EAChB,OAAO,EACP,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kCAAkC,EAClC,2BAA2B,EAC3B,eAAe,EACf,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa,EAAE,KAAgC,EAAE,OAAuB;IACrG,2BAA2B;IAC3B,IACE,CAAC,kBAAkB,CACjB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EACjD,OAAO,CAAC,KAAK,EACb,2BAA2B,GAAG,CAAC,EAC/B,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAC3B,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAE5B,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,KAAgC,EAChC,OAAqC;IAErC,MAAM,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IAC7C,MAAM,EAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;IAExD,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACxG,IAAI,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9F,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,4DAA4D;YAC5D,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,KAAiC,CAAC;YACvD,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBACvE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;aACvB,CAAC,CAAC;YACH,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEhE,IACE,kCAAkC,CAAC,qBAAqB,CAAC;gBACzD,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC;gBACtF,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EACzF,CAAC;gBACD,4BAA4B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAa,EACb,KAAgC,EAChC,MAAiB,EACjB,qBAA8B,EAC9B,MAAiB;IAEjB,MAAM,EAAC,UAAU,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IACrC,oCAAoC;IACpC,MAAM,gBAAgB,GACpB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,2BAA2B,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,UAAU,CAAC,IAAI,CACb,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC5B,MAAM;QACN,qBAAqB;QACrB,0BAA0B,EAAE,gBAAgB;QAC5C,eAAe,EAAE,gBAAgB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,iBAAiB,EAAE,gBAAgB;QACnC,gBAAgB;QAChB,OAAO,EAAE,KAAK;KACf,CAAC,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,4BAA4B;IAC5B,oEAAoE;IACpE,6FAA6F;IAC7F,qEAAqE;IACrE,wEAAwE;IACxE,QAAQ,CAAC,6BAA6B,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEzE,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAE3C,qBAAqB;IACrB,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAgC,CAAC;QAErD,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErC,2BAA2B;QAC3B,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,YAAY,GAAG,KAAiC,CAAC;QACvD,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YACvE,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;SACvB,CAAC,CAAC;QACH,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAoB,EACpB,MAAkB,EAClB,qBAAiC,EACjC,MAAc,EACd,gBAA4B;IAE5B,iGAAiG;IACjG,MAAM,cAAc,GAAG;QACrB,MAAM;QACN,qBAAqB;QACrB,MAAM;KACP,CAAC;IACF,6DAA6D;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC1F,IAAI,CAAC;QACH,+GAA+G;QAC/G,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAE9D,OAAO,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC,CAAC,8FAA8F;IAC9G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"processDeposit.js","sourceRoot":"","sources":["../../src/block/processDeposit.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { electra } from "@lodestar/types";
2
- import { ForkSeq } from "@lodestar/params";
3
2
  import { CachedBeaconStateElectra } from "../types.js";
4
- export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra, depositRequest: electra.DepositRequest): void;
3
+ export declare function processDepositRequest(state: CachedBeaconStateElectra, depositRequest: electra.DepositRequest): void;
5
4
  //# sourceMappingURL=processDepositRequest.d.ts.map
@@ -1,9 +1,17 @@
1
+ import { ssz } from "@lodestar/types";
1
2
  import { UNSET_DEPOSIT_REQUESTS_START_INDEX } from "@lodestar/params";
2
- import { applyDeposit } from "./processDeposit.js";
3
- export function processDepositRequest(fork, state, depositRequest) {
3
+ export function processDepositRequest(state, depositRequest) {
4
4
  if (state.depositRequestsStartIndex === UNSET_DEPOSIT_REQUESTS_START_INDEX) {
5
5
  state.depositRequestsStartIndex = BigInt(depositRequest.index);
6
6
  }
7
- applyDeposit(fork, state, depositRequest);
7
+ // Create pending deposit
8
+ const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
9
+ pubkey: depositRequest.pubkey,
10
+ withdrawalCredentials: depositRequest.withdrawalCredentials,
11
+ amount: depositRequest.amount,
12
+ signature: depositRequest.signature,
13
+ slot: state.slot,
14
+ });
15
+ state.pendingDeposits.push(pendingDeposit);
8
16
  }
9
17
  //# sourceMappingURL=processDepositRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,qBAAqB,CACnC,IAAa,EACb,KAA+B,EAC/B,cAAsC;IAEtC,IAAI,KAAK,CAAC,yBAAyB,KAAK,kCAAkC,EAAE,CAAC;QAC3E,KAAK,CAAC,yBAAyB,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAU,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;AAI7E,MAAM,UAAU,qBAAqB,CAAC,KAA+B,EAAE,cAAsC;IAC3G,IAAI,KAAK,CAAC,yBAAyB,KAAK,kCAAkC,EAAE,CAAC;QAC3E,KAAK,CAAC,yBAAyB,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,qBAAqB,EAAE,cAAc,CAAC,qBAAqB;QAC3D,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC"}
@@ -45,9 +45,7 @@ export function becomesNewEth1Data(state, newEth1Data) {
45
45
  if ((sameVotesCount + 1) * 2 > SLOTS_PER_ETH1_VOTING_PERIOD) {
46
46
  return true;
47
47
  }
48
- else {
49
- return false;
50
- }
48
+ return false;
51
49
  }
52
50
  function isEqualEth1DataView(eth1DataA, eth1DataB) {
53
51
  return isEqualNode(eth1DataA.node, eth1DataB.node);
@@ -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,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACvD,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,4BAA4B,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,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"}
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,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACvD,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,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"}
@@ -38,7 +38,7 @@ export function processOperations(fork, state, body, opts = { verifySignatures:
38
38
  const stateElectra = state;
39
39
  const bodyElectra = body;
40
40
  for (const depositRequest of bodyElectra.executionRequests.deposits) {
41
- processDepositRequest(fork, stateElectra, depositRequest);
41
+ processDepositRequest(stateElectra, depositRequest);
42
42
  }
43
43
  for (const elWithdrawalRequest of bodyElectra.executionRequests.withdrawals) {
44
44
  processWithdrawalRequest(fork, stateElectra, elWithdrawalRequest);
@@ -1 +1 @@
1
- {"version":3,"file":"processOperations.js","sourceRoot":"","sources":["../../src/block/processOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processOperations.js","sourceRoot":"","sources":["../../src/block/processOperations.ts"],"names":[],"mappings":"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"}
@@ -81,9 +81,7 @@ participantIndices) {
81
81
  if (byteArrayEquals(signature, G2_POINT_AT_INFINITY)) {
82
82
  return null;
83
83
  }
84
- else {
85
- throw Error("Empty sync committee signature is not infinity");
86
- }
84
+ throw Error("Empty sync committee signature is not infinity");
87
85
  }
88
86
  const domain = state.config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, previousSlot);
89
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"processSyncCommittee.js","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processSyncCommittee.js","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAC,kBAAkB,EAAiB,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAElE,MAAM,UAAU,oBAAoB,CAClC,KAAgC,EAChC,KAAyB,EACzB,gBAAgB,GAAG,IAAI;IAEvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,gBAAgB,CAAC;IAErF,kIAAkI;IAClI,IAAI,gBAAgB,EAAE,CAAC;QACrB,wEAAwE;QACxE,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACpF,kFAAkF;QAClF,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACnE,MAAM,EAAC,iBAAiB,EAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,oCAAoC;YACpC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC5B,eAAe,IAAI,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;YACvD,CAAC;YACD,kBAAkB;YAClB,eAAe,IAAI,kBAAkB,CAAC;YACtC,KAAK,CAAC,eAAe,CAAC,aAAa,IAAI,kBAAkB,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC5B,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAgC,EAChC,KAAyB;AACzB,uDAAuD;AACvD,kBAA6B;IAE7B,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,EAAC,aAAa,EAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IACnC,MAAM,SAAS,GAAG,aAAa,CAAC,sBAAsB,CAAC;IAEvD,mDAAmD;IACnD,YAAY;IACZ,qDAAqD;IACrD,MAAM;IACN,mGAAmG;IACnG,oGAAoG;IACpG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjD,0DAA0D;IAC1D,YAAY;IACZ,+CAA+C;IAC/C,MAAM;IACN,mGAAmG;IACnG,mEAAmE;IACnE,EAAE;IACF,6GAA6G;IAC7G,wGAAwG;IACxG,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAEpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,gBAAgB,CAAC;QACrF,kBAAkB,GAAG,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACzF,CAAC;IAED,mFAAmF;IACnF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,+EAA+E;QAC/E,wIAAwI;QACxI,IAAI,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,SAAS;QAChC,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC;QAC7D,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -18,7 +18,7 @@ export function processWithdrawalRequest(fork, state, withdrawalRequest) {
18
18
  // bail out if validator is not in beacon state
19
19
  // note that we don't need to check for 6110 unfinalized vals as they won't be eligible for withdraw/exit anyway
20
20
  const validatorIndex = pubkey2index.get(withdrawalRequest.validatorPubkey);
21
- if (validatorIndex === undefined) {
21
+ if (validatorIndex === null) {
22
22
  return;
23
23
  }
24
24
  const validator = validators.get(validatorIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"processWithdrawalRequest.js","sourceRoot":"","sources":["../../src/block/processWithdrawalRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processWithdrawalRequest.js","sourceRoot":"","sources":["../../src/block/processWithdrawalRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,GAEzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,kCAAkC,EAAE,gCAAgC,EAAC,MAAM,oBAAoB,CAAC;AACxG,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,wBAAwB,CACtC,IAAa,EACb,KAA+B,EAC/B,iBAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,EAAC,yBAAyB,EAAE,UAAU,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IAChE,wFAAwF;IACxF,MAAM,EAAC,YAAY,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;IACxC,MAAM,iBAAiB,GAAG,MAAM,KAAK,wBAAwB,CAAC;IAE9D,qEAAqE;IACrE,IAAI,yBAAyB,CAAC,MAAM,IAAI,iCAAiC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChG,OAAO;IACT,CAAC;IAED,+CAA+C;IAC/C,gHAAgH;IAChH,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC3E,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,CAAC,oCAAoC,CAAC,SAAS,EAAE,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7F,OAAO;IACT,CAAC;IAED,2DAA2D;IAC3D,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAI,iBAAiB,EAAE,CAAC;QACtB,oEAAoE;QACpE,IAAI,wBAAwB,KAAK,CAAC,EAAE,CAAC;YACnC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;IACT,CAAC;IAED,6BAA6B;IAC7B,MAAM,6BAA6B,GAAG,SAAS,CAAC,gBAAgB,IAAI,sBAAsB,CAAC;IAC3F,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;IAE9F,yEAAyE;IACzE,IACE,kCAAkC,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACnE,6BAA6B;QAC7B,gBAAgB,EAChB,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAC7B,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,sBAAsB,GAAG,wBAAwB,EAAE,MAAM,CAAC,CACvF,CAAC;QACF,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC,mCAAmC,CAAC;QAEtF,MAAM,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC;YAC7E,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,gBAAgB;YACxB,iBAAiB;SAClB,CAAC,CAAC;QACH,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAC3C,SAA2B,EAC3B,aAAyB,EACzB,KAA+B;IAE/B,MAAM,EAAC,qBAAqB,EAAC,GAAG,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IAErD,OAAO,CACL,gCAAgC,CAAC,qBAAqB,CAAC;QACvD,UAAU,KAAK,gBAAgB;QAC/B,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC;QAC1C,SAAS,CAAC,SAAS,KAAK,gBAAgB;QACxC,YAAY,IAAI,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,sBAAsB,CAC1E,CAAC;AACJ,CAAC"}
@@ -61,6 +61,8 @@ export function getExpectedWithdrawals(fork, state) {
61
61
  const { validators, balances, nextWithdrawalValidatorIndex } = state;
62
62
  const withdrawals = [];
63
63
  const isPostElectra = fork >= ForkSeq.electra;
64
+ // partialWithdrawalsCount is withdrawals coming from EL since electra (EIP-7002)
65
+ let partialWithdrawalsCount = 0;
64
66
  if (isPostElectra) {
65
67
  const stateElectra = state;
66
68
  // MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP = 8, PENDING_PARTIAL_WITHDRAWALS_LIMIT: 134217728 so we should only call getAllReadonly() if it makes sense
@@ -91,10 +93,9 @@ export function getExpectedWithdrawals(fork, state) {
91
93
  });
92
94
  withdrawalIndex++;
93
95
  }
96
+ partialWithdrawalsCount++;
94
97
  }
95
98
  }
96
- // partialWithdrawalsCount is withdrawals coming from EL since electra (EIP-7002)
97
- const partialWithdrawalsCount = withdrawals.length;
98
99
  const bound = Math.min(validators.length, MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP);
99
100
  let n = 0;
100
101
  // Just run a bounded loop max iterating over all withdrawals
@@ -1 +1 @@
1
- {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { PublicKey } from "@chainsafe/blst";
2
2
  import * as immutable from "immutable";
3
+ import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
3
4
  import { BLSSignature, CommitteeIndex, Epoch, Slot, ValidatorIndex, phase0, RootHex, SyncPeriod, Attestation, IndexedAttestation } from "@lodestar/types";
4
5
  import { BeaconConfig, ChainConfig } from "@lodestar/config";
5
6
  import { ForkSeq } from "@lodestar/params";
@@ -9,7 +10,7 @@ import { AttesterDuty } from "../util/calculateCommitteeAssignments.js";
9
10
  import { EpochCacheMetrics } from "../metrics.js";
10
11
  import { EffectiveBalanceIncrements } from "./effectiveBalanceIncrements.js";
11
12
  import { BeaconStateAllForks } from "./types.js";
12
- import { Index2PubkeyCache, PubkeyIndexMap, UnfinalizedPubkeyIndexMap, PubkeyHex } from "./pubkeyCache.js";
13
+ import { Index2PubkeyCache, UnfinalizedPubkeyIndexMap, PubkeyHex } from "./pubkeyCache.js";
13
14
  import { SyncCommitteeCache } from "./syncCommitteeCache.js";
14
15
  import { CachedBeaconStateAllForks } from "./stateCache.js";
15
16
  /** `= PROPOSER_WEIGHT / (WEIGHT_DENOMINATOR - PROPOSER_WEIGHT)` */
@@ -274,6 +275,7 @@ export declare class EpochCache {
274
275
  computeSubnetForSlot(slot: number, committeeIndex: number): number;
275
276
  getBeaconProposer(slot: Slot): ValidatorIndex;
276
277
  getBeaconProposers(): ValidatorIndex[];
278
+ getBeaconProposersPrevEpoch(): ValidatorIndex[] | null;
277
279
  /**
278
280
  * We allow requesting proposal duties 1 epoch in the future as in normal network conditions it's possible to predict
279
281
  * the correct shuffling with high probability. While knowing the proposers in advance is not useful for consensus,
@@ -337,7 +339,7 @@ export declare class EpochCache {
337
339
  * need to make such enquiry
338
340
  */
339
341
  getPubkey(index: ValidatorIndex): PublicKey | undefined;
340
- getValidatorIndex(pubkey: Uint8Array | PubkeyHex): ValidatorIndex | undefined;
342
+ getValidatorIndex(pubkey: Uint8Array): ValidatorIndex | null;
341
343
  /**
342
344
  *
343
345
  * Add unfinalized pubkeys
@@ -350,7 +352,7 @@ export declare class EpochCache {
350
352
  * Add finalized validator index and pubkey into finalized cache.
351
353
  * Since addFinalizedPubkey() primarily takes pubkeys from unfinalized cache, it can take pubkey hex string directly
352
354
  */
353
- addFinalizedPubkey(index: ValidatorIndex, pubkey: PubkeyHex | Uint8Array, metrics?: EpochCacheMetrics): void;
355
+ addFinalizedPubkey(index: ValidatorIndex, pubkeyOrHex: PubkeyHex | Uint8Array, metrics?: EpochCacheMetrics): void;
354
356
  /**
355
357
  * Delete pubkeys from unfinalized cache
356
358
  */