@lodestar/state-transition 1.39.0-dev.84b481ddb5 → 1.39.0-dev.87ff5db949

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 (113) hide show
  1. package/lib/block/isValidIndexedAttestation.d.ts +4 -5
  2. package/lib/block/isValidIndexedAttestation.d.ts.map +1 -1
  3. package/lib/block/isValidIndexedAttestation.js +9 -10
  4. package/lib/block/isValidIndexedAttestation.js.map +1 -1
  5. package/lib/block/processAttestationPhase0.d.ts.map +1 -1
  6. package/lib/block/processAttestationPhase0.js +1 -1
  7. package/lib/block/processAttestationPhase0.js.map +1 -1
  8. package/lib/block/processAttestationsAltair.js +1 -1
  9. package/lib/block/processAttestationsAltair.js.map +1 -1
  10. package/lib/block/processAttesterSlashing.d.ts +3 -2
  11. package/lib/block/processAttesterSlashing.d.ts.map +1 -1
  12. package/lib/block/processAttesterSlashing.js +3 -3
  13. package/lib/block/processAttesterSlashing.js.map +1 -1
  14. package/lib/block/processBlsToExecutionChange.d.ts +3 -1
  15. package/lib/block/processBlsToExecutionChange.d.ts.map +1 -1
  16. package/lib/block/processBlsToExecutionChange.js +7 -11
  17. package/lib/block/processBlsToExecutionChange.js.map +1 -1
  18. package/lib/block/processProposerSlashing.d.ts +5 -2
  19. package/lib/block/processProposerSlashing.d.ts.map +1 -1
  20. package/lib/block/processProposerSlashing.js +7 -5
  21. package/lib/block/processProposerSlashing.js.map +1 -1
  22. package/lib/block/processRandao.js +2 -2
  23. package/lib/block/processRandao.js.map +1 -1
  24. package/lib/block/processSyncCommittee.d.ts +2 -1
  25. package/lib/block/processSyncCommittee.d.ts.map +1 -1
  26. package/lib/block/processSyncCommittee.js +6 -4
  27. package/lib/block/processSyncCommittee.js.map +1 -1
  28. package/lib/block/processVoluntaryExit.js +1 -1
  29. package/lib/block/processVoluntaryExit.js.map +1 -1
  30. package/lib/block/processWithdrawals.d.ts +3 -3
  31. package/lib/block/processWithdrawals.d.ts.map +1 -1
  32. package/lib/block/processWithdrawals.js +152 -105
  33. package/lib/block/processWithdrawals.js.map +1 -1
  34. package/lib/index.d.ts +2 -1
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +2 -0
  37. package/lib/index.js.map +1 -1
  38. package/lib/rewards/attestationsRewards.d.ts +6 -0
  39. package/lib/rewards/attestationsRewards.d.ts.map +1 -0
  40. package/lib/rewards/attestationsRewards.js +113 -0
  41. package/lib/rewards/attestationsRewards.js.map +1 -0
  42. package/lib/rewards/blockRewards.d.ts +13 -0
  43. package/lib/rewards/blockRewards.d.ts.map +1 -0
  44. package/lib/rewards/blockRewards.js +95 -0
  45. package/lib/rewards/blockRewards.js.map +1 -0
  46. package/lib/rewards/index.d.ts +4 -0
  47. package/lib/rewards/index.d.ts.map +1 -0
  48. package/lib/rewards/index.js +4 -0
  49. package/lib/rewards/index.js.map +1 -0
  50. package/lib/rewards/syncCommitteeRewards.d.ts +6 -0
  51. package/lib/rewards/syncCommitteeRewards.d.ts.map +1 -0
  52. package/lib/rewards/syncCommitteeRewards.js +36 -0
  53. package/lib/rewards/syncCommitteeRewards.js.map +1 -0
  54. package/lib/signatureSets/attesterSlashings.d.ts +4 -5
  55. package/lib/signatureSets/attesterSlashings.d.ts.map +1 -1
  56. package/lib/signatureSets/attesterSlashings.js +10 -7
  57. package/lib/signatureSets/attesterSlashings.js.map +1 -1
  58. package/lib/signatureSets/blsToExecutionChange.d.ts +1 -2
  59. package/lib/signatureSets/blsToExecutionChange.d.ts.map +1 -1
  60. package/lib/signatureSets/blsToExecutionChange.js +2 -2
  61. package/lib/signatureSets/blsToExecutionChange.js.map +1 -1
  62. package/lib/signatureSets/index.d.ts +2 -2
  63. package/lib/signatureSets/index.d.ts.map +1 -1
  64. package/lib/signatureSets/index.js +10 -10
  65. package/lib/signatureSets/index.js.map +1 -1
  66. package/lib/signatureSets/indexedAttestation.d.ts +5 -6
  67. package/lib/signatureSets/indexedAttestation.d.ts.map +1 -1
  68. package/lib/signatureSets/indexedAttestation.js +12 -9
  69. package/lib/signatureSets/indexedAttestation.js.map +1 -1
  70. package/lib/signatureSets/proposer.d.ts +5 -6
  71. package/lib/signatureSets/proposer.d.ts.map +1 -1
  72. package/lib/signatureSets/proposer.js +12 -10
  73. package/lib/signatureSets/proposer.js.map +1 -1
  74. package/lib/signatureSets/proposerSlashings.d.ts +3 -4
  75. package/lib/signatureSets/proposerSlashings.d.ts.map +1 -1
  76. package/lib/signatureSets/proposerSlashings.js +7 -4
  77. package/lib/signatureSets/proposerSlashings.js.map +1 -1
  78. package/lib/signatureSets/randao.d.ts +2 -3
  79. package/lib/signatureSets/randao.d.ts.map +1 -1
  80. package/lib/signatureSets/randao.js +6 -4
  81. package/lib/signatureSets/randao.js.map +1 -1
  82. package/lib/signatureSets/voluntaryExits.d.ts +4 -5
  83. package/lib/signatureSets/voluntaryExits.d.ts.map +1 -1
  84. package/lib/signatureSets/voluntaryExits.js +10 -7
  85. package/lib/signatureSets/voluntaryExits.js.map +1 -1
  86. package/lib/stateTransition.d.ts.map +1 -1
  87. package/lib/stateTransition.js +1 -2
  88. package/lib/stateTransition.js.map +1 -1
  89. package/package.json +14 -11
  90. package/src/block/isValidIndexedAttestation.ts +19 -12
  91. package/src/block/processAttestationPhase0.ts +2 -1
  92. package/src/block/processAttestationsAltair.ts +1 -1
  93. package/src/block/processAttesterSlashing.ts +16 -4
  94. package/src/block/processBlsToExecutionChange.ts +13 -14
  95. package/src/block/processProposerSlashing.ts +21 -11
  96. package/src/block/processRandao.ts +2 -2
  97. package/src/block/processSyncCommittee.ts +7 -4
  98. package/src/block/processVoluntaryExit.ts +1 -1
  99. package/src/block/processWithdrawals.ts +230 -135
  100. package/src/index.ts +2 -2
  101. package/src/rewards/attestationsRewards.ts +200 -0
  102. package/src/rewards/blockRewards.ts +147 -0
  103. package/src/rewards/index.ts +3 -0
  104. package/src/rewards/syncCommitteeRewards.ts +59 -0
  105. package/src/signatureSets/attesterSlashings.ts +10 -9
  106. package/src/signatureSets/blsToExecutionChange.ts +2 -3
  107. package/src/signatureSets/index.ts +11 -11
  108. package/src/signatureSets/indexedAttestation.ts +12 -11
  109. package/src/signatureSets/proposer.ts +11 -11
  110. package/src/signatureSets/proposerSlashings.ts +7 -6
  111. package/src/signatureSets/randao.ts +4 -5
  112. package/src/signatureSets/voluntaryExits.ts +10 -9
  113. package/src/stateTransition.ts +1 -4
@@ -1,14 +1,13 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
- import { IndexedAttestation, IndexedAttestationBigint } from "@lodestar/types";
2
+ import { IndexedAttestation, IndexedAttestationBigint, Slot } from "@lodestar/types";
3
3
  import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
4
- import { CachedBeaconStateAllForks } from "../types.js";
5
4
  /**
6
5
  * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
7
6
  */
8
- export declare function isValidIndexedAttestation(config: BeaconConfig, index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, indexedAttestation: IndexedAttestation, verifySignature: boolean): boolean;
9
- export declare function isValidIndexedAttestationBigint(config: BeaconConfig, index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, indexedAttestation: IndexedAttestationBigint, verifySignature: boolean): boolean;
7
+ export declare function isValidIndexedAttestation(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestation, verifySignature: boolean): boolean;
8
+ export declare function isValidIndexedAttestationBigint(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestationBigint, verifySignature: boolean): boolean;
10
9
  /**
11
10
  * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
12
11
  */
13
- export declare function isValidIndexedAttestationIndices(state: CachedBeaconStateAllForks, indices: number[]): boolean;
12
+ export declare function isValidIndexedAttestationIndices(config: BeaconConfig, stateSlot: Slot, validatorsLen: number, indices: number[]): boolean;
14
13
  //# sourceMappingURL=isValidIndexedAttestation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isValidIndexedAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CA2B7G"}
1
+ {"version":3,"file":"isValidIndexedAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,OAAO,GACvB,OAAO,CAWT;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CA0BT"}
@@ -4,30 +4,30 @@ import { verifySignatureSet } from "../util/index.js";
4
4
  /**
5
5
  * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
6
6
  */
7
- export function isValidIndexedAttestation(config, index2pubkey, state, indexedAttestation, verifySignature) {
8
- if (!isValidIndexedAttestationIndices(state, indexedAttestation.attestingIndices)) {
7
+ export function isValidIndexedAttestation(config, index2pubkey, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
8
+ if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
9
9
  return false;
10
10
  }
11
11
  if (verifySignature) {
12
- return verifySignatureSet(getIndexedAttestationSignatureSet(config, index2pubkey, state, indexedAttestation));
12
+ return verifySignatureSet(getIndexedAttestationSignatureSet(config, index2pubkey, stateSlot, indexedAttestation));
13
13
  }
14
14
  return true;
15
15
  }
16
- export function isValidIndexedAttestationBigint(config, index2pubkey, state, indexedAttestation, verifySignature) {
17
- if (!isValidIndexedAttestationIndices(state, indexedAttestation.attestingIndices)) {
16
+ export function isValidIndexedAttestationBigint(config, index2pubkey, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
17
+ if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
18
18
  return false;
19
19
  }
20
20
  if (verifySignature) {
21
- return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config, index2pubkey, state, indexedAttestation));
21
+ return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config, index2pubkey, stateSlot, indexedAttestation));
22
22
  }
23
23
  return true;
24
24
  }
25
25
  /**
26
26
  * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
27
27
  */
28
- export function isValidIndexedAttestationIndices(state, indices) {
28
+ export function isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indices) {
29
29
  // verify max number of indices
30
- const maxIndices = state.config.getForkSeq(state.slot) >= ForkSeq.electra
30
+ const maxIndices = config.getForkSeq(stateSlot) >= ForkSeq.electra
31
31
  ? MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT
32
32
  : MAX_VALIDATORS_PER_COMMITTEE;
33
33
  if (!(indices.length > 0 && indices.length <= maxIndices)) {
@@ -43,9 +43,8 @@ export function isValidIndexedAttestationIndices(state, indices) {
43
43
  prev = index;
44
44
  }
45
45
  // check if indices are out of bounds, by checking the highest index (since it is sorted)
46
- // TODO - SLOW CODE - Does this .length check the tree and is expensive?
47
46
  const lastIndex = indices.at(-1);
48
- if (lastIndex && lastIndex >= state.validators.length) {
47
+ if (lastIndex && lastIndex >= validatorsLen) {
49
48
  return false;
50
49
  }
51
50
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AAErH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoB,EACpB,YAA+B,EAC/B,KAAgC,EAChC,kBAAsC,EACtC,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,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,YAA+B,EAC/B,KAAgC,EAChC,kBAA4C,EAC5C,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,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACtH,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,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACtD,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":"AACA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoB,EACpB,YAA+B,EAC/B,SAAe,EACf,aAAqB,EACrB,kBAAsC,EACtC,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,YAA+B,EAC/B,SAAe,EACf,aAAqB,EACrB,kBAA4C,EAC5C,eAAwB;IAExB,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CACvB,uCAAuC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,SAAe,EACf,aAAqB,EACrB,OAAiB;IAEjB,+BAA+B;IAC/B,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO;QAC7C,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,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,CA6CN;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA2FnH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAM9E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,CA8CN;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA2FnH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAM9E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAErE"}
@@ -33,7 +33,7 @@ export function processAttestationPhase0(state, attestation, verifySignature = t
33
33
  }
34
34
  state.previousEpochAttestations.push(pendingAttestation);
35
35
  }
36
- if (!isValidIndexedAttestation(state.config, epochCtx.index2pubkey, state, epochCtx.getIndexedAttestation(ForkSeq.phase0, attestation), verifySignature)) {
36
+ if (!isValidIndexedAttestation(state.config, epochCtx.index2pubkey, state.slot, state.validators.length, epochCtx.getIndexedAttestation(ForkSeq.phase0, attestation), verifySignature)) {
37
37
  throw new Error("Attestation is not valid");
38
38
  }
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
32
32
  // TODO: Why should we verify an indexed attestation that we just created? If it's just for the signature
33
33
  // we can verify only that and nothing else.
34
34
  if (verifySignature) {
35
- const sigSet = getAttestationWithIndicesSignatureSet(state.config, epochCtx.index2pubkey, state, attestation, attestingIndices);
35
+ const sigSet = getAttestationWithIndicesSignatureSet(state.config, epochCtx.index2pubkey, state.slot, attestation, attestingIndices);
36
36
  if (!verifySignatureSet(sigSet)) {
37
37
  throw new Error("Attestation signature is not valid");
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { BeaconConfig } from "@lodestar/config";
1
2
  import { ForkSeq } from "@lodestar/params";
2
- import { AttesterSlashing } from "@lodestar/types";
3
+ import { AttesterSlashing, Slot } from "@lodestar/types";
3
4
  import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
4
5
  import { CachedBeaconStateAllForks } from "../types.js";
5
6
  /**
@@ -9,5 +10,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
9
10
  * PERF: Work depends on number of AttesterSlashing per block. On regular networks the average is 0 / block.
10
11
  */
11
12
  export declare function processAttesterSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
12
- export declare function assertValidAttesterSlashing(index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
13
+ export declare function assertValidAttesterSlashing(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
13
14
  //# sourceMappingURL=processAttesterSlashing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processAttesterSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAKtD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CAmBN;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CAgBN"}
1
+ {"version":3,"file":"processAttesterSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAKtD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CA0BN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CAkBN"}
@@ -9,7 +9,7 @@ import { slashValidator } from "./slashValidator.js";
9
9
  */
10
10
  export function processAttesterSlashing(fork, state, attesterSlashing, verifySignatures = true) {
11
11
  const { epochCtx } = state;
12
- assertValidAttesterSlashing(epochCtx.index2pubkey, state, attesterSlashing, verifySignatures);
12
+ assertValidAttesterSlashing(state.config, epochCtx.index2pubkey, state.slot, state.validators.length, attesterSlashing, verifySignatures);
13
13
  const intersectingIndices = getAttesterSlashableIndices(attesterSlashing);
14
14
  let slashedAny = false;
15
15
  const validators = state.validators; // Get the validators sub tree once for all indices
@@ -24,7 +24,7 @@ export function processAttesterSlashing(fork, state, attesterSlashing, verifySig
24
24
  throw new Error("AttesterSlashing did not result in any slashings");
25
25
  }
26
26
  }
27
- export function assertValidAttesterSlashing(index2pubkey, state, attesterSlashing, verifySignatures = true) {
27
+ export function assertValidAttesterSlashing(config, index2pubkey, stateSlot, validatorsLen, attesterSlashing, verifySignatures = true) {
28
28
  const attestation1 = attesterSlashing.attestation1;
29
29
  const attestation2 = attesterSlashing.attestation2;
30
30
  if (!isSlashableAttestationData(attestation1.data, attestation2.data)) {
@@ -34,7 +34,7 @@ export function assertValidAttesterSlashing(index2pubkey, state, attesterSlashin
34
34
  // be higher than the clock and the slashing would still be valid. Same applies to attestation data index, which
35
35
  // can be any arbitrary value. Must use bigint variants to hash correctly to all possible values
36
36
  for (const [i, attestation] of [attestation1, attestation2].entries()) {
37
- if (!isValidIndexedAttestationBigint(state.config, index2pubkey, state, attestation, verifySignatures)) {
37
+ if (!isValidIndexedAttestationBigint(config, index2pubkey, stateSlot, validatorsLen, attestation, verifySignatures)) {
38
38
  throw new Error(`AttesterSlashing attestation${i} is invalid`);
39
39
  }
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,2BAA2B,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAE9F,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,mDAAmD;IACxF,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAA+B,EAC/B,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IACnD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,8GAA8G;IAC9G,gHAAgH;IAChH,gGAAgG;IAChG,KAAK,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACtE,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACvG,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,2BAA2B,CACzB,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,YAAY,EACrB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IAEF,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,mDAAmD;IACxF,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,YAA+B,EAC/B,SAAe,EACf,aAAqB,EACrB,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IACnD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,8GAA8G;IAC9G,gHAAgH;IAChH,gGAAgG;IAChG,KAAK,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACtE,IACE,CAAC,+BAA+B,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAC/G,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,7 +1,9 @@
1
+ import { BeaconConfig } from "@lodestar/config";
1
2
  import { capella } from "@lodestar/types";
3
+ import { Validator } from "@lodestar/types/phase0";
2
4
  import { CachedBeaconStateCapella } from "../types.js";
3
5
  export declare function processBlsToExecutionChange(state: CachedBeaconStateCapella, signedBlsToExecutionChange: capella.SignedBLSToExecutionChange): void;
4
- export declare function isValidBlsToExecutionChange(state: CachedBeaconStateCapella, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange, verifySignature?: boolean): {
6
+ export declare function isValidBlsToExecutionChange(config: BeaconConfig, validator: Validator, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange, verifySignature?: boolean): {
5
7
  valid: true;
6
8
  } | {
7
9
  valid: false;
@@ -1 +1 @@
1
- {"version":3,"file":"processBlsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAGxC,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAErD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,IAAI,CAeN;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,EAC9D,eAAe,UAAO,GACrB;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CA6C9C"}
1
+ {"version":3,"file":"processBlsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAErD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,IAAI,CAqBN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,EAC9D,eAAe,UAAO,GACrB;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAmC9C"}
@@ -5,26 +5,22 @@ import { toHex } from "@lodestar/utils";
5
5
  import { verifyBlsToExecutionChangeSignature } from "../signatureSets/index.js";
6
6
  export function processBlsToExecutionChange(state, signedBlsToExecutionChange) {
7
7
  const addressChange = signedBlsToExecutionChange.message;
8
- const validation = isValidBlsToExecutionChange(state, signedBlsToExecutionChange, true);
8
+ if (addressChange.validatorIndex >= state.validators.length) {
9
+ throw Error(`withdrawalValidatorIndex ${addressChange.validatorIndex} >= state.validators len ${state.validators.length}`);
10
+ }
11
+ const validator = state.validators.get(addressChange.validatorIndex);
12
+ const validation = isValidBlsToExecutionChange(state.config, validator, signedBlsToExecutionChange, true);
9
13
  if (!validation.valid) {
10
14
  throw validation.error;
11
15
  }
12
- const validator = state.validators.get(addressChange.validatorIndex);
13
16
  const newWithdrawalCredentials = new Uint8Array(32);
14
17
  newWithdrawalCredentials[0] = ETH1_ADDRESS_WITHDRAWAL_PREFIX;
15
18
  newWithdrawalCredentials.set(addressChange.toExecutionAddress, 12);
16
19
  // Set the new credentials back
17
20
  validator.withdrawalCredentials = newWithdrawalCredentials;
18
21
  }
19
- export function isValidBlsToExecutionChange(state, signedBLSToExecutionChange, verifySignature = true) {
22
+ export function isValidBlsToExecutionChange(config, validator, signedBLSToExecutionChange, verifySignature = true) {
20
23
  const addressChange = signedBLSToExecutionChange.message;
21
- if (addressChange.validatorIndex >= state.validators.length) {
22
- return {
23
- valid: false,
24
- error: Error(`withdrawalValidatorIndex ${addressChange.validatorIndex} > state.validators len ${state.validators.length}`),
25
- };
26
- }
27
- const validator = state.validators.getReadonly(addressChange.validatorIndex);
28
24
  const { withdrawalCredentials } = validator;
29
25
  if (withdrawalCredentials[0] !== BLS_WITHDRAWAL_PREFIX) {
30
26
  return {
@@ -41,7 +37,7 @@ export function isValidBlsToExecutionChange(state, signedBLSToExecutionChange, v
41
37
  error: Error(`Invalid withdrawalCredentials expected=${toHex(withdrawalCredentials)} actual=${toHex(digestCredentials)}`),
42
38
  };
43
39
  }
44
- if (verifySignature && !verifyBlsToExecutionChangeSignature(state, signedBLSToExecutionChange)) {
40
+ if (verifySignature && !verifyBlsToExecutionChangeSignature(config, signedBLSToExecutionChange)) {
45
41
  return {
46
42
  valid: false,
47
43
  error: Error(`Signature could not be verified for BLS to Execution Change for validatorIndex${addressChange.validatorIndex}`),
@@ -1 +1 @@
1
- {"version":3,"file":"processBlsToExecutionChange.js","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,mCAAmC,EAAC,MAAM,2BAA2B,CAAC;AAG9E,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,0BAA8D;IAE9D,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,MAAM,UAAU,GAAG,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACxF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpD,wBAAwB,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC;IAC7D,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEnE,+BAA+B;IAC/B,SAAS,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,0BAA8D,EAC9D,eAAe,GAAG,IAAI;IAEtB,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,IAAI,aAAa,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,4BAA4B,aAAa,CAAC,cAAc,2BAA2B,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAC7G;SACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,EAAC,qBAAqB,EAAC,GAAG,SAAS,CAAC;IAC1C,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iDAAiD,qBAAqB,WAAW,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,iBAAiB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;IAC7C,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,0CAA0C,KAAK,CAAC,qBAAqB,CAAC,WAAW,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,IAAI,CAAC,mCAAmC,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAC/F,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iFAAiF,aAAa,CAAC,cAAc,EAAE,CAChH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"processBlsToExecutionChange.js","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAGvF,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,mCAAmC,EAAC,MAAM,2BAA2B,CAAC;AAG9E,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,0BAA8D;IAE9D,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,IAAI,aAAa,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,KAAK,CACT,4BAA4B,aAAa,CAAC,cAAc,4BAA4B,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC1G,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpD,wBAAwB,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC;IAC7D,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEnE,+BAA+B;IAC/B,SAAS,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,SAAoB,EACpB,0BAA8D,EAC9D,eAAe,GAAG,IAAI;IAEtB,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,MAAM,EAAC,qBAAqB,EAAC,GAAG,SAAS,CAAC;IAC1C,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iDAAiD,qBAAqB,WAAW,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,iBAAiB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;IAC7C,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,0CAA0C,KAAK,CAAC,qBAAqB,CAAC,WAAW,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAChG,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iFAAiF,aAAa,CAAC,cAAc,EAAE,CAChH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;AACvB,CAAC"}
@@ -1,5 +1,8 @@
1
+ import { BeaconConfig } from "@lodestar/config";
1
2
  import { ForkSeq } from "@lodestar/params";
2
- import { phase0 } from "@lodestar/types";
3
+ import { Slot, phase0 } from "@lodestar/types";
4
+ import { Validator } from "@lodestar/types/phase0";
5
+ import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
3
6
  import { CachedBeaconStateAllForks } from "../types.js";
4
7
  /**
5
8
  * Process a ProposerSlashing operation. Initiates the exit of a validator, decreases the balance of the slashed
@@ -8,5 +11,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
8
11
  * PERF: Work depends on number of ProposerSlashing per block. On regular networks the average is 0 / block.
9
12
  */
10
13
  export declare function processProposerSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, proposerSlashing: phase0.ProposerSlashing, verifySignatures?: boolean): void;
11
- export declare function assertValidProposerSlashing(state: CachedBeaconStateAllForks, proposerSlashing: phase0.ProposerSlashing, verifySignatures?: boolean): void;
14
+ export declare function assertValidProposerSlashing(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, proposerSlashing: phase0.ProposerSlashing, proposer: Validator, verifySignatures?: boolean): void;
12
15
  //# sourceMappingURL=processProposerSlashing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processProposerSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,yBAAyB,EAAyB,MAAM,aAAa,CAAC;AAK9E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,gBAAgB,UAAO,GACtB,IAAI,CAyBN;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,gBAAgB,UAAO,GACtB,IAAI,CAyCN"}
1
+ {"version":3,"file":"processProposerSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,yBAAyB,EAAyB,MAAM,aAAa,CAAC;AAK9E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,gBAAgB,UAAO,GACtB,IAAI,CAiCN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,QAAQ,EAAE,SAAS,EACnB,gBAAgB,UAAO,GACtB,IAAI,CAqCN"}
@@ -11,7 +11,8 @@ import { slashValidator } from "./slashValidator.js";
11
11
  * PERF: Work depends on number of ProposerSlashing per block. On regular networks the average is 0 / block.
12
12
  */
13
13
  export function processProposerSlashing(fork, state, proposerSlashing, verifySignatures = true) {
14
- assertValidProposerSlashing(state, proposerSlashing, verifySignatures);
14
+ const proposer = state.validators.getReadonly(proposerSlashing.signedHeader1.message.proposerIndex);
15
+ assertValidProposerSlashing(state.config, state.epochCtx.index2pubkey, state.slot, proposerSlashing, proposer, verifySignatures);
15
16
  if (fork >= ForkSeq.gloas) {
16
17
  const slot = Number(proposerSlashing.signedHeader1.message.slot);
17
18
  const proposalEpoch = computeEpochAtSlot(slot);
@@ -28,7 +29,7 @@ export function processProposerSlashing(fork, state, proposerSlashing, verifySig
28
29
  }
29
30
  slashValidator(fork, state, proposerSlashing.signedHeader1.message.proposerIndex);
30
31
  }
31
- export function assertValidProposerSlashing(state, proposerSlashing, verifySignatures = true) {
32
+ export function assertValidProposerSlashing(config, index2pubkey, stateSlot, proposerSlashing, proposer, verifySignatures = true) {
32
33
  const header1 = proposerSlashing.signedHeader1.message;
33
34
  const header2 = proposerSlashing.signedHeader2.message;
34
35
  // verify header slots match
@@ -44,13 +45,14 @@ export function assertValidProposerSlashing(state, proposerSlashing, verifySigna
44
45
  throw new Error("ProposerSlashing headers are equal");
45
46
  }
46
47
  // verify the proposer is slashable
47
- const proposer = state.validators.getReadonly(header1.proposerIndex);
48
- if (!isSlashableValidator(proposer, state.epochCtx.epoch)) {
48
+ // ideally we would get the proposer from state.validators using proposerIndex but that requires access to state
49
+ // instead of that we pass in the proposer directly from the consumer side
50
+ if (!isSlashableValidator(proposer, computeEpochAtSlot(stateSlot))) {
49
51
  throw new Error("ProposerSlashing proposer is not slashable");
50
52
  }
51
53
  // verify signatures
52
54
  if (verifySignatures) {
53
- const signatureSets = getProposerSlashingSignatureSets(state.config, state.epochCtx.index2pubkey, state, proposerSlashing);
55
+ const signatureSets = getProposerSlashingSignatureSets(config, index2pubkey, stateSlot, proposerSlashing);
54
56
  for (let i = 0; i < signatureSets.length; i++) {
55
57
  if (!verifySignatureSet(signatureSets[i])) {
56
58
  throw new Error(`ProposerSlashing header${i + 1} signature invalid`);
@@ -1 +1 @@
1
- {"version":3,"file":"processProposerSlashing.js","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processProposerSlashing.js","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@ import { getRandaoMix } from "../util/index.js";
9
9
  * PERF: Fixed work independent of block contents.
10
10
  */
11
11
  export function processRandao(state, block, verifySignature = true) {
12
- const { epochCtx } = state;
12
+ const { epochCtx, config } = state;
13
13
  const epoch = epochCtx.epoch;
14
14
  const randaoReveal = block.body.randaoReveal;
15
15
  // verify RANDAO reveal
16
- if (verifySignature && !verifyRandaoSignature(state.config, epochCtx.index2pubkey, state, block)) {
16
+ if (verifySignature && !verifyRandaoSignature(config, epochCtx.index2pubkey, block)) {
17
17
  throw new Error("RANDAO reveal is an invalid signature");
18
18
  }
19
19
  // mix in RANDAO reveal
@@ -1 +1 @@
1
- {"version":3,"file":"processRandao.js","sourceRoot":"","sources":["../../src/block/processRandao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC,EAAE,KAAkB,EAAE,eAAe,GAAG,IAAI;IACxG,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IAE7C,uBAAuB;IACvB,IAAI,eAAe,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,GAAG,4BAA4B,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"processRandao.js","sourceRoot":"","sources":["../../src/block/processRandao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC,EAAE,KAAkB,EAAE,eAAe,GAAG,IAAI;IACxG,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IAE7C,uBAAuB;IACvB,IAAI,eAAe,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,GAAG,4BAA4B,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
2
  import { altair } from "@lodestar/types";
3
3
  import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
4
+ import { SyncCommitteeCache } from "../cache/syncCommitteeCache.js";
4
5
  import { CachedBeaconStateAllForks } from "../types.js";
5
6
  import { ISignatureSet } from "../util/index.js";
6
7
  export declare function processSyncAggregate(state: CachedBeaconStateAllForks, block: altair.BeaconBlock, verifySignatures?: boolean): void;
7
- export declare function getSyncCommitteeSignatureSet(config: BeaconConfig, index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, block: altair.BeaconBlock,
8
+ export declare function getSyncCommitteeSignatureSet(config: BeaconConfig, index2pubkey: Index2PubkeyCache, currentSyncCommitteeIndexed: SyncCommitteeCache, block: altair.BeaconBlock,
8
9
  /** Optional parameter to prevent computing it twice */
9
10
  participantIndices?: number[]): ISignatureSet | null;
10
11
  //# sourceMappingURL=processSyncCommittee.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSyncCommittee.d.ts","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,aAAa,EAMd,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,gBAAgB,UAAO,GACtB,IAAI,CAkDN;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,uDAAuD;AACvD,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,aAAa,GAAG,IAAI,CA8CtB"}
1
+ {"version":3,"file":"processSyncCommittee.d.ts","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,aAAa,EAMd,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,gBAAgB,UAAO,GACtB,IAAI,CAkDN;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,2BAA2B,EAAE,kBAAkB,EAC/C,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,uDAAuD;AACvD,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,aAAa,GAAG,IAAI,CAgDtB"}
@@ -9,7 +9,7 @@ export function processSyncAggregate(state, block, verifySignatures = true) {
9
9
  if (verifySignatures) {
10
10
  // This is to conform to the spec - we want the signature to be verified
11
11
  const participantIndices = block.body.syncAggregate.syncCommitteeBits.intersectValues(committeeIndices);
12
- const signatureSet = getSyncCommitteeSignatureSet(state.config, state.epochCtx.index2pubkey, state, block, participantIndices);
12
+ const signatureSet = getSyncCommitteeSignatureSet(state.config, state.epochCtx.index2pubkey, state.epochCtx.currentSyncCommitteeIndexed, block, participantIndices);
13
13
  // When there's no participation we consider the signature valid and just ignore i
14
14
  if (signatureSet !== null && !verifySignatureSet(signatureSet)) {
15
15
  throw Error("Sync committee signature invalid");
@@ -46,7 +46,7 @@ export function processSyncAggregate(state, block, verifySignatures = true) {
46
46
  // Apply proposer balance
47
47
  state.balances.set(proposerIndex, proposerBalance);
48
48
  }
49
- export function getSyncCommitteeSignatureSet(config, index2pubkey, state, block,
49
+ export function getSyncCommitteeSignatureSet(config, index2pubkey, currentSyncCommitteeIndexed, block,
50
50
  /** Optional parameter to prevent computing it twice */
51
51
  participantIndices) {
52
52
  const { syncAggregate } = block.body;
@@ -69,7 +69,7 @@ participantIndices) {
69
69
  // So getSyncCommitteeSignatureSet() can be called with a state in any slot (with the correct shuffling)
70
70
  const rootSigned = block.parentRoot;
71
71
  if (!participantIndices) {
72
- const committeeIndices = state.epochCtx.currentSyncCommitteeIndexed.validatorIndices;
72
+ const committeeIndices = currentSyncCommitteeIndexed.validatorIndices;
73
73
  participantIndices = syncAggregate.syncCommitteeBits.intersectValues(committeeIndices);
74
74
  }
75
75
  // When there's no participation we consider the signature valid and just ignore it
@@ -81,7 +81,9 @@ participantIndices) {
81
81
  }
82
82
  throw Error("Empty sync committee signature is not infinity");
83
83
  }
84
- const domain = config.getDomain(state.slot, DOMAIN_SYNC_COMMITTEE, previousSlot);
84
+ // the getDomain() api requires the state slot as 1st param, however it's the same to block.slot in state-transition
85
+ // and the same epoch when we verify blocks in batch in beacon-node. So we can safely use block.slot here.
86
+ const domain = config.getDomain(block.slot, DOMAIN_SYNC_COMMITTEE, previousSlot);
85
87
  return {
86
88
  type: SignatureSetType.aggregate,
87
89
  pubkeys: participantIndices.map((i) => index2pubkey[i]),
@@ -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":"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"}
@@ -52,7 +52,7 @@ export function getVoluntaryExitValidity(fork, state, signedVoluntaryExit, verif
52
52
  return VoluntaryExitValidity.pendingWithdrawals;
53
53
  }
54
54
  if (verifySignature &&
55
- !verifyVoluntaryExitSignature(state.config, epochCtx.index2pubkey, state, signedVoluntaryExit)) {
55
+ !verifyVoluntaryExitSignature(state.config, epochCtx.index2pubkey, state.slot, signedVoluntaryExit)) {
56
56
  return VoluntaryExitValidity.invalidSignature;
57
57
  }
58
58
  return VoluntaryExitValidity.valid;
@@ -1 +1 @@
1
- {"version":3,"file":"processVoluntaryExit.js","sourceRoot":"","sources":["../../src/block/processVoluntaryExit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processVoluntaryExit.js","sourceRoot":"","sources":["../../src/block/processVoluntaryExit.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import { capella } from "@lodestar/types";
3
3
  import { CachedBeaconStateCapella, CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
4
4
  export declare function processWithdrawals(fork: ForkSeq, state: CachedBeaconStateCapella | CachedBeaconStateElectra | CachedBeaconStateGloas, payload?: capella.FullOrBlindedExecutionPayload): void;
5
5
  export declare function getExpectedWithdrawals(fork: ForkSeq, state: CachedBeaconStateCapella | CachedBeaconStateElectra | CachedBeaconStateGloas): {
6
- withdrawals: capella.Withdrawal[];
7
- sampledValidators: number;
8
- processedPartialWithdrawalsCount: number;
6
+ expectedWithdrawals: capella.Withdrawal[];
9
7
  processedBuilderWithdrawalsCount: number;
8
+ processedPartialWithdrawalsCount: number;
9
+ processedValidatorSweepCount: number;
10
10
  };
11
11
  //# sourceMappingURL=processWithdrawals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAMR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAiB,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAUvG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,EACnF,OAAO,CAAC,EAAE,OAAO,CAAC,6BAA6B,GAC9C,IAAI,CA0FN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,GAClF;IACD,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;CAC1C,CA2KA"}
1
+ {"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAMR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAiB,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAUvG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,EACnF,OAAO,CAAC,EAAE,OAAO,CAAC,6BAA6B,GAC9C,IAAI,CAuFN;AAkND,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,GAClF;IACD,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;IACzC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CA6DA"}