@lodestar/state-transition 1.23.0-dev.8da003e0f1 → 1.23.0-dev.911a3f59f6

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 (60) hide show
  1. package/lib/block/processConsolidationRequest.js +1 -1
  2. package/lib/block/processConsolidationRequest.js.map +1 -1
  3. package/lib/block/processDeposit.js +2 -2
  4. package/lib/block/processDeposit.js.map +1 -1
  5. package/lib/block/processOperations.js +3 -3
  6. package/lib/block/processOperations.js.map +1 -1
  7. package/lib/block/processWithdrawalRequest.js +1 -1
  8. package/lib/block/processWithdrawalRequest.js.map +1 -1
  9. package/lib/cache/epochCache.d.ts +57 -24
  10. package/lib/cache/epochCache.js +187 -73
  11. package/lib/cache/epochCache.js.map +1 -1
  12. package/lib/cache/epochTransitionCache.d.ts +4 -4
  13. package/lib/cache/epochTransitionCache.js +19 -4
  14. package/lib/cache/epochTransitionCache.js.map +1 -1
  15. package/lib/cache/pubkeyCache.d.ts +1 -9
  16. package/lib/cache/pubkeyCache.js +0 -18
  17. package/lib/cache/pubkeyCache.js.map +1 -1
  18. package/lib/cache/stateCache.js +2 -1
  19. package/lib/cache/stateCache.js.map +1 -1
  20. package/lib/cache/syncCommitteeCache.d.ts +1 -1
  21. package/lib/cache/syncCommitteeCache.js +1 -1
  22. package/lib/cache/syncCommitteeCache.js.map +1 -1
  23. package/lib/epoch/processSlashings.js +8 -2
  24. package/lib/epoch/processSlashings.js.map +1 -1
  25. package/lib/epoch/processSyncCommitteeUpdates.js +1 -1
  26. package/lib/epoch/processSyncCommitteeUpdates.js.map +1 -1
  27. package/lib/index.d.ts +2 -1
  28. package/lib/index.js +2 -1
  29. package/lib/index.js.map +1 -1
  30. package/lib/slot/upgradeStateToAltair.js +1 -1
  31. package/lib/slot/upgradeStateToAltair.js.map +1 -1
  32. package/lib/slot/upgradeStateToElectra.js +1 -8
  33. package/lib/slot/upgradeStateToElectra.js.map +1 -1
  34. package/lib/stateTransition.js +19 -0
  35. package/lib/stateTransition.js.map +1 -1
  36. package/lib/util/balance.d.ts +1 -1
  37. package/lib/util/blindedBlock.js +12 -4
  38. package/lib/util/blindedBlock.js.map +1 -1
  39. package/lib/util/calculateCommitteeAssignments.d.ts +12 -0
  40. package/lib/util/calculateCommitteeAssignments.js +26 -0
  41. package/lib/util/calculateCommitteeAssignments.js.map +1 -0
  42. package/lib/util/computeAnchorCheckpoint.d.ts +8 -0
  43. package/lib/util/computeAnchorCheckpoint.js +32 -0
  44. package/lib/util/computeAnchorCheckpoint.js.map +1 -0
  45. package/lib/util/epochShuffling.d.ts +43 -2
  46. package/lib/util/epochShuffling.js +45 -21
  47. package/lib/util/epochShuffling.js.map +1 -1
  48. package/lib/util/execution.js +1 -8
  49. package/lib/util/execution.js.map +1 -1
  50. package/lib/util/index.d.ts +2 -1
  51. package/lib/util/index.js +2 -1
  52. package/lib/util/index.js.map +1 -1
  53. package/lib/util/seed.js +1 -1
  54. package/lib/util/seed.js.map +1 -1
  55. package/lib/util/weakSubjectivity.js +0 -1
  56. package/lib/util/weakSubjectivity.js.map +1 -1
  57. package/package.json +10 -8
  58. package/lib/util/shuffle.d.ts +0 -9
  59. package/lib/util/shuffle.js +0 -197
  60. package/lib/util/shuffle.js.map +0 -1
@@ -15,7 +15,7 @@ export function processConsolidationRequest(state, consolidationRequest) {
15
15
  const { sourcePubkey, targetPubkey } = consolidationRequest;
16
16
  const sourceIndex = state.epochCtx.getValidatorIndex(sourcePubkey);
17
17
  const targetIndex = state.epochCtx.getValidatorIndex(targetPubkey);
18
- if (sourceIndex === undefined || targetIndex === undefined) {
18
+ if (sourceIndex === null || targetIndex === null) {
19
19
  return;
20
20
  }
21
21
  // Verify that source != target, so a consolidation cannot be used as an exit.
@@ -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,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,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjD,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"}
@@ -28,7 +28,7 @@ export function applyDeposit(fork, state, deposit) {
28
28
  const { config, validators, epochCtx } = state;
29
29
  const { pubkey, withdrawalCredentials, amount } = deposit;
30
30
  const cachedIndex = epochCtx.getValidatorIndex(pubkey);
31
- if (cachedIndex === undefined || !Number.isSafeInteger(cachedIndex) || cachedIndex >= validators.length) {
31
+ if (cachedIndex === null || !Number.isSafeInteger(cachedIndex) || cachedIndex >= validators.length) {
32
32
  if (isValidDepositSignature(config, pubkey, withdrawalCredentials, amount, deposit.signature)) {
33
33
  addValidatorToRegistry(fork, state, pubkey, withdrawalCredentials, amount);
34
34
  }
@@ -113,7 +113,7 @@ function isValidDepositSignature(config, pubkey, withdrawalCredentials, amount,
113
113
  const signature = Signature.fromBytes(depositSignature, true);
114
114
  return verify(signingRoot, publicKey, signature);
115
115
  }
116
- catch (e) {
116
+ catch (_e) {
117
117
  return false; // Catch all BLS errors: failed key validation, failed signature validation, invalid signature
118
118
  }
119
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processDeposit.js","sourceRoot":"","sources":["../../src/block/processDeposit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processDeposit.js","sourceRoot":"","sources":["../../src/block/processDeposit.ts"],"names":[],"mappings":"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"}
@@ -37,13 +37,13 @@ export function processOperations(fork, state, body, opts = { verifySignatures:
37
37
  if (fork >= ForkSeq.electra) {
38
38
  const stateElectra = state;
39
39
  const bodyElectra = body;
40
- for (const depositRequest of bodyElectra.executionPayload.depositRequests) {
40
+ for (const depositRequest of bodyElectra.executionRequests.deposits) {
41
41
  processDepositRequest(fork, stateElectra, depositRequest);
42
42
  }
43
- for (const elWithdrawalRequest of bodyElectra.executionPayload.withdrawalRequests) {
43
+ for (const elWithdrawalRequest of bodyElectra.executionRequests.withdrawals) {
44
44
  processWithdrawalRequest(fork, stateElectra, elWithdrawalRequest);
45
45
  }
46
- for (const elConsolidationRequest of bodyElectra.executionPayload.consolidationRequests) {
46
+ for (const elConsolidationRequest of bodyElectra.executionRequests.consolidations) {
47
47
  processConsolidationRequest(stateElectra, elConsolidationRequest);
48
48
  }
49
49
  }
@@ -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":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,GAC5B,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,IAAa,EACb,KAAgC,EAChC,IAAqB,EACrB,OAAyB,EAAC,gBAAgB,EAAE,IAAI,EAAC;IAEjD,sFAAsF;IACtF,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,6DAA6D,IAAI,CAAC,QAAQ,CAAC,MAAM,aAAa,WAAW,EAAE,CAC5G,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChF,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE3E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,oBAAoB,IAAK,IAAgC,CAAC,qBAAqB,EAAE,CAAC;YAC3F,2BAA2B,CAAC,KAAiC,EAAE,oBAAoB,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,KAAiC,CAAC;QACvD,MAAM,WAAW,GAAG,IAA+B,CAAC;QAEpD,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YACpE,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,MAAM,mBAAmB,IAAI,WAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAC5E,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,sBAAsB,IAAI,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;YAClF,2BAA2B,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,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":"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"}
@@ -1,26 +1,29 @@
1
1
  import { PublicKey } from "@chainsafe/blst";
2
2
  import * as immutable from "immutable";
3
- import { BLSSignature, CommitteeIndex, Epoch, Slot, ValidatorIndex, phase0, SyncPeriod, Attestation, IndexedAttestation } from "@lodestar/types";
3
+ import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
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";
6
7
  import { LodestarError } from "@lodestar/utils";
7
- import { EpochShuffling } from "../util/epochShuffling.js";
8
+ import { EpochShuffling, IShufflingCache } from "../util/epochShuffling.js";
9
+ import { AttesterDuty } from "../util/calculateCommitteeAssignments.js";
8
10
  import { EpochCacheMetrics } from "../metrics.js";
9
11
  import { EffectiveBalanceIncrements } from "./effectiveBalanceIncrements.js";
10
- import { Index2PubkeyCache, PubkeyIndexMap, UnfinalizedPubkeyIndexMap, PubkeyHex } from "./pubkeyCache.js";
11
- import { BeaconStateAllForks, ShufflingGetter } from "./types.js";
12
+ import { BeaconStateAllForks } from "./types.js";
13
+ import { Index2PubkeyCache, UnfinalizedPubkeyIndexMap, PubkeyHex } from "./pubkeyCache.js";
12
14
  import { SyncCommitteeCache } from "./syncCommitteeCache.js";
15
+ import { CachedBeaconStateAllForks } from "./stateCache.js";
13
16
  /** `= PROPOSER_WEIGHT / (WEIGHT_DENOMINATOR - PROPOSER_WEIGHT)` */
14
17
  export declare const PROPOSER_WEIGHT_FACTOR: number;
15
18
  export type EpochCacheImmutableData = {
16
19
  config: BeaconConfig;
17
20
  pubkey2index: PubkeyIndexMap;
18
21
  index2pubkey: Index2PubkeyCache;
22
+ shufflingCache?: IShufflingCache;
19
23
  };
20
24
  export type EpochCacheOpts = {
21
25
  skipSyncCommitteeCache?: boolean;
22
26
  skipSyncPubkeys?: boolean;
23
- shufflingGetter?: ShufflingGetter;
24
27
  };
25
28
  /** Defers computing proposers by persisting only the seed, and dropping it once indexes are computed */
26
29
  type ProposersDeferred = {
@@ -79,6 +82,11 @@ export declare class EpochCache {
79
82
  * Unique pubkey registry shared in the same fork. There should only exist one for the fork.
80
83
  */
81
84
  unfinalizedPubkey2index: UnfinalizedPubkeyIndexMap;
85
+ /**
86
+ * ShufflingCache is passed in from `beacon-node` so should be available at runtime but may not be
87
+ * present during testing.
88
+ */
89
+ shufflingCache?: IShufflingCache;
82
90
  /**
83
91
  * Indexes of the block proposers for the current epoch.
84
92
  *
@@ -93,6 +101,12 @@ export declare class EpochCache {
93
101
  * should be in the epoch context.
94
102
  */
95
103
  proposersNextEpoch: ProposersDeferred;
104
+ /**
105
+ * Epoch decision roots to look up correct shuffling from the Shuffling Cache
106
+ */
107
+ previousDecisionRoot: RootHex;
108
+ currentDecisionRoot: RootHex;
109
+ nextDecisionRoot: RootHex;
96
110
  /**
97
111
  * Shuffling of validator indexes. Immutable through the epoch, then it's replaced entirely.
98
112
  * Note: Per spec definition, shuffling will always be defined. They are never called before loadState()
@@ -103,7 +117,12 @@ export declare class EpochCache {
103
117
  /** Same as previousShuffling */
104
118
  currentShuffling: EpochShuffling;
105
119
  /** Same as previousShuffling */
106
- nextShuffling: EpochShuffling;
120
+ nextShuffling: EpochShuffling | null;
121
+ /**
122
+ * Cache nextActiveIndices so that in afterProcessEpoch the next shuffling can be build synchronously
123
+ * in case it is not built or the ShufflingCache is not available
124
+ */
125
+ nextActiveIndices: Uint32Array;
107
126
  /**
108
127
  * Effective balances, for altair processAttestations()
109
128
  */
@@ -169,7 +188,6 @@ export declare class EpochCache {
169
188
  currentSyncCommitteeIndexed: SyncCommitteeCache;
170
189
  /** TODO: Indexed SyncCommitteeCache */
171
190
  nextSyncCommitteeIndexed: SyncCommitteeCache;
172
- epoch: Epoch;
173
191
  syncPeriod: SyncPeriod;
174
192
  /**
175
193
  * state.validators.length of every state at epoch boundary
@@ -180,17 +198,24 @@ export declare class EpochCache {
180
198
  * then the list will be (in terms of epoch) [103, 104, 105]
181
199
  */
182
200
  historicalValidatorLengths: immutable.List<number>;
201
+ epoch: Epoch;
202
+ get nextEpoch(): Epoch;
183
203
  constructor(data: {
184
204
  config: BeaconConfig;
185
205
  pubkey2index: PubkeyIndexMap;
186
206
  index2pubkey: Index2PubkeyCache;
187
207
  unfinalizedPubkey2index: UnfinalizedPubkeyIndexMap;
208
+ shufflingCache?: IShufflingCache;
188
209
  proposers: number[];
189
210
  proposersPrevEpoch: number[] | null;
190
211
  proposersNextEpoch: ProposersDeferred;
212
+ previousDecisionRoot: RootHex;
213
+ currentDecisionRoot: RootHex;
214
+ nextDecisionRoot: RootHex;
191
215
  previousShuffling: EpochShuffling;
192
216
  currentShuffling: EpochShuffling;
193
- nextShuffling: EpochShuffling;
217
+ nextShuffling: EpochShuffling | null;
218
+ nextActiveIndices: Uint32Array;
194
219
  effectiveBalanceIncrements: EffectiveBalanceIncrements;
195
220
  totalSlashingsByIncrement: number;
196
221
  syncParticipantReward: number;
@@ -215,19 +240,23 @@ export declare class EpochCache {
215
240
  *
216
241
  * SLOW CODE - 🐢
217
242
  */
218
- static createFromState(state: BeaconStateAllForks, { config, pubkey2index, index2pubkey }: EpochCacheImmutableData, opts?: EpochCacheOpts): EpochCache;
243
+ static createFromState(state: BeaconStateAllForks, { config, pubkey2index, index2pubkey, shufflingCache }: EpochCacheImmutableData, opts?: EpochCacheOpts): EpochCache;
219
244
  /**
220
245
  * Copies a given EpochCache while avoiding copying its immutable parts.
221
246
  */
222
247
  clone(): EpochCache;
223
248
  /**
224
249
  * Called to re-use information, such as the shuffling of the next epoch, after transitioning into a
225
- * new epoch.
250
+ * new epoch. Also handles pre-computation of values that may change during the upcoming epoch and
251
+ * that get used in the following epoch transition. Often those pre-computations are not used by the
252
+ * chain but are courtesy values that are served via the API for epoch look ahead of duties.
253
+ *
254
+ * Steps for afterProcessEpoch
255
+ * 1) update previous/current/next values of cached items
226
256
  */
227
- afterProcessEpoch(state: BeaconStateAllForks, epochTransitionCache: {
228
- indicesEligibleForActivationQueue: ValidatorIndex[];
229
- nextEpochShufflingActiveValidatorIndices: ValidatorIndex[];
230
- nextEpochShufflingActiveIndicesLength: number;
257
+ afterProcessEpoch(state: CachedBeaconStateAllForks, epochTransitionCache: {
258
+ nextShufflingDecisionRoot: RootHex;
259
+ nextShufflingActiveIndices: Uint32Array;
231
260
  nextEpochTotalActiveBalanceByIncrement: number;
232
261
  }): void;
233
262
  beforeEpochTransition(): void;
@@ -246,6 +275,7 @@ export declare class EpochCache {
246
275
  computeSubnetForSlot(slot: number, committeeIndex: number): number;
247
276
  getBeaconProposer(slot: Slot): ValidatorIndex;
248
277
  getBeaconProposers(): ValidatorIndex[];
278
+ getBeaconProposersPrevEpoch(): ValidatorIndex[] | null;
249
279
  /**
250
280
  * We allow requesting proposal duties 1 epoch in the future as in normal network conditions it's possible to predict
251
281
  * the correct shuffling with high probability. While knowing the proposers in advance is not useful for consensus,
@@ -309,7 +339,7 @@ export declare class EpochCache {
309
339
  * need to make such enquiry
310
340
  */
311
341
  getPubkey(index: ValidatorIndex): PublicKey | undefined;
312
- getValidatorIndex(pubkey: Uint8Array | PubkeyHex): ValidatorIndex | undefined;
342
+ getValidatorIndex(pubkey: Uint8Array): ValidatorIndex | null;
313
343
  /**
314
344
  *
315
345
  * Add unfinalized pubkeys
@@ -322,7 +352,7 @@ export declare class EpochCache {
322
352
  * Add finalized validator index and pubkey into finalized cache.
323
353
  * Since addFinalizedPubkey() primarily takes pubkeys from unfinalized cache, it can take pubkey hex string directly
324
354
  */
325
- addFinalizedPubkey(index: ValidatorIndex, pubkey: PubkeyHex | Uint8Array, metrics?: EpochCacheMetrics): void;
355
+ addFinalizedPubkey(index: ValidatorIndex, pubkeyOrHex: PubkeyHex | Uint8Array, metrics?: EpochCacheMetrics): void;
326
356
  /**
327
357
  * Delete pubkeys from unfinalized cache
328
358
  */
@@ -330,6 +360,7 @@ export declare class EpochCache {
330
360
  getShufflingAtSlot(slot: Slot): EpochShuffling;
331
361
  getShufflingAtSlotOrNull(slot: Slot): EpochShuffling | null;
332
362
  getShufflingAtEpoch(epoch: Epoch): EpochShuffling;
363
+ getShufflingDecisionRoot(epoch: Epoch): RootHex;
333
364
  getShufflingAtEpochOrNull(epoch: Epoch): EpochShuffling | null;
334
365
  /**
335
366
  * Note: The range of slots a validator has to perform duties is off by one.
@@ -351,17 +382,11 @@ export declare class EpochCache {
351
382
  isPostElectra(): boolean;
352
383
  getValidatorCountAtEpoch(targetEpoch: Epoch): number | undefined;
353
384
  }
354
- type AttesterDuty = {
355
- validatorIndex: ValidatorIndex;
356
- committeeIndex: CommitteeIndex;
357
- committeeLength: number;
358
- committeesAtSlot: number;
359
- validatorCommitteeIndex: number;
360
- slot: Slot;
361
- };
362
385
  export declare enum EpochCacheErrorCode {
363
386
  COMMITTEE_INDEX_OUT_OF_RANGE = "EPOCH_CONTEXT_ERROR_COMMITTEE_INDEX_OUT_OF_RANGE",
364
387
  COMMITTEE_EPOCH_OUT_OF_RANGE = "EPOCH_CONTEXT_ERROR_COMMITTEE_EPOCH_OUT_OF_RANGE",
388
+ DECISION_ROOT_EPOCH_OUT_OF_RANGE = "EPOCH_CONTEXT_ERROR_DECISION_ROOT_EPOCH_OUT_OF_RANGE",
389
+ NEXT_SHUFFLING_NOT_AVAILABLE = "EPOCH_CONTEXT_ERROR_NEXT_SHUFFLING_NOT_AVAILABLE",
365
390
  NO_SYNC_COMMITTEE = "EPOCH_CONTEXT_ERROR_NO_SYNC_COMMITTEE",
366
391
  PROPOSER_EPOCH_MISMATCH = "EPOCH_CONTEXT_ERROR_PROPOSER_EPOCH_MISMATCH"
367
392
  }
@@ -373,6 +398,14 @@ type EpochCacheErrorType = {
373
398
  code: EpochCacheErrorCode.COMMITTEE_EPOCH_OUT_OF_RANGE;
374
399
  requestedEpoch: Epoch;
375
400
  currentEpoch: Epoch;
401
+ } | {
402
+ code: EpochCacheErrorCode.DECISION_ROOT_EPOCH_OUT_OF_RANGE;
403
+ requestedEpoch: Epoch;
404
+ currentEpoch: Epoch;
405
+ } | {
406
+ code: EpochCacheErrorCode.NEXT_SHUFFLING_NOT_AVAILABLE;
407
+ epoch: Epoch;
408
+ decisionRoot: RootHex;
376
409
  } | {
377
410
  code: EpochCacheErrorCode.NO_SYNC_COMMITTEE;
378
411
  epoch: Epoch;