@lodestar/beacon-node 1.40.0-dev.c7b6a784da → 1.40.0-dev.cfd894719f

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 (229) hide show
  1. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  2. package/lib/chain/blocks/verifyBlock.js +1 -1
  3. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  4. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  5. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  6. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  7. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  8. package/lib/chain/bls/multithread/index.d.ts +3 -1
  9. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  10. package/lib/chain/bls/multithread/index.js +5 -3
  11. package/lib/chain/bls/multithread/index.js.map +1 -1
  12. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  13. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  14. package/lib/chain/bls/multithread/jobItem.js +2 -2
  15. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  16. package/lib/chain/bls/singleThread.d.ts +4 -2
  17. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  18. package/lib/chain/bls/singleThread.js +4 -2
  19. package/lib/chain/bls/singleThread.js.map +1 -1
  20. package/lib/chain/bls/utils.d.ts +2 -2
  21. package/lib/chain/bls/utils.d.ts.map +1 -1
  22. package/lib/chain/bls/utils.js +9 -6
  23. package/lib/chain/bls/utils.js.map +1 -1
  24. package/lib/chain/chain.d.ts +7 -2
  25. package/lib/chain/chain.d.ts.map +1 -1
  26. package/lib/chain/chain.js +22 -5
  27. package/lib/chain/chain.js.map +1 -1
  28. package/lib/chain/errors/attestationError.d.ts +14 -1
  29. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  30. package/lib/chain/errors/attestationError.js +8 -0
  31. package/lib/chain/errors/attestationError.js.map +1 -1
  32. package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
  33. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
  34. package/lib/chain/errors/executionPayloadBid.js +15 -0
  35. package/lib/chain/errors/executionPayloadBid.js.map +1 -0
  36. package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
  37. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
  38. package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
  39. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
  40. package/lib/chain/errors/index.d.ts +3 -0
  41. package/lib/chain/errors/index.d.ts.map +1 -1
  42. package/lib/chain/errors/index.js +3 -0
  43. package/lib/chain/errors/index.js.map +1 -1
  44. package/lib/chain/errors/payloadAttestation.d.ts +34 -0
  45. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
  46. package/lib/chain/errors/payloadAttestation.js +13 -0
  47. package/lib/chain/errors/payloadAttestation.js.map +1 -0
  48. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  49. package/lib/chain/forkChoice/index.js +18 -0
  50. package/lib/chain/forkChoice/index.js.map +1 -1
  51. package/lib/chain/interface.d.ts +7 -2
  52. package/lib/chain/interface.d.ts.map +1 -1
  53. package/lib/chain/interface.js.map +1 -1
  54. package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
  55. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
  56. package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
  57. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
  58. package/lib/chain/opPools/index.d.ts +2 -0
  59. package/lib/chain/opPools/index.d.ts.map +1 -1
  60. package/lib/chain/opPools/index.js +2 -0
  61. package/lib/chain/opPools/index.js.map +1 -1
  62. package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
  63. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
  64. package/lib/chain/opPools/payloadAttestationPool.js +109 -0
  65. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
  66. package/lib/chain/regen/interface.d.ts +1 -0
  67. package/lib/chain/regen/interface.d.ts.map +1 -1
  68. package/lib/chain/regen/interface.js +1 -0
  69. package/lib/chain/regen/interface.js.map +1 -1
  70. package/lib/chain/seenCache/index.d.ts +3 -1
  71. package/lib/chain/seenCache/index.d.ts.map +1 -1
  72. package/lib/chain/seenCache/index.js +3 -1
  73. package/lib/chain/seenCache/index.js.map +1 -1
  74. package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
  75. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  76. package/lib/chain/seenCache/seenAttesters.js +5 -0
  77. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  78. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
  79. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
  80. package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
  81. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
  82. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
  83. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
  84. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
  85. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
  86. package/lib/chain/validation/aggregateAndProof.js +35 -14
  87. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  88. package/lib/chain/validation/attestation.d.ts +2 -2
  89. package/lib/chain/validation/attestation.d.ts.map +1 -1
  90. package/lib/chain/validation/attestation.js +27 -8
  91. package/lib/chain/validation/attestation.js.map +1 -1
  92. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  93. package/lib/chain/validation/attesterSlashing.js +1 -1
  94. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  95. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  96. package/lib/chain/validation/blobSidecar.js +2 -2
  97. package/lib/chain/validation/blobSidecar.js.map +1 -1
  98. package/lib/chain/validation/block.d.ts.map +1 -1
  99. package/lib/chain/validation/block.js +5 -4
  100. package/lib/chain/validation/block.js.map +1 -1
  101. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  102. package/lib/chain/validation/dataColumnSidecar.js +2 -2
  103. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  104. package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
  105. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
  106. package/lib/chain/validation/executionPayloadBid.js +103 -0
  107. package/lib/chain/validation/executionPayloadBid.js.map +1 -0
  108. package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
  109. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
  110. package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
  111. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
  112. package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
  113. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
  114. package/lib/chain/validation/payloadAttestationMessage.js +72 -0
  115. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
  116. package/lib/chain/validation/proposerSlashing.js +1 -1
  117. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  118. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -3
  119. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  120. package/lib/chain/validation/signatureSets/aggregateAndProof.js +8 -3
  121. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  122. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  123. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  124. package/lib/chain/validation/signatureSets/contributionAndProof.js +3 -3
  125. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  126. package/lib/chain/validation/signatureSets/selectionProof.d.ts +2 -3
  127. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +1 -1
  128. package/lib/chain/validation/signatureSets/selectionProof.js +8 -3
  129. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  130. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  131. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  132. package/lib/chain/validation/signatureSets/syncCommittee.js +3 -3
  133. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  134. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
  135. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  136. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  137. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  138. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  139. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  140. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +3 -3
  141. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  142. package/lib/chain/validation/syncCommittee.js +1 -1
  143. package/lib/chain/validation/syncCommittee.js.map +1 -1
  144. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  145. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -5
  146. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  147. package/lib/chain/validation/voluntaryExit.js +1 -1
  148. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  149. package/lib/metrics/metrics/lodestar.d.ts +20 -0
  150. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  151. package/lib/metrics/metrics/lodestar.js +40 -0
  152. package/lib/metrics/metrics/lodestar.js.map +1 -1
  153. package/lib/network/gossip/interface.d.ts +20 -2
  154. package/lib/network/gossip/interface.d.ts.map +1 -1
  155. package/lib/network/gossip/interface.js +3 -0
  156. package/lib/network/gossip/interface.js.map +1 -1
  157. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  158. package/lib/network/gossip/scoringParameters.js +38 -2
  159. package/lib/network/gossip/scoringParameters.js.map +1 -1
  160. package/lib/network/gossip/topic.d.ts +77 -1
  161. package/lib/network/gossip/topic.d.ts.map +1 -1
  162. package/lib/network/gossip/topic.js +20 -0
  163. package/lib/network/gossip/topic.js.map +1 -1
  164. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  165. package/lib/network/processor/gossipHandlers.js +34 -0
  166. package/lib/network/processor/gossipHandlers.js.map +1 -1
  167. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  168. package/lib/network/processor/gossipQueues/index.js +16 -0
  169. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  170. package/lib/network/processor/index.d.ts.map +1 -1
  171. package/lib/network/processor/index.js +3 -0
  172. package/lib/network/processor/index.js.map +1 -1
  173. package/lib/sync/backfill/backfill.js +2 -2
  174. package/lib/sync/backfill/backfill.js.map +1 -1
  175. package/lib/sync/backfill/verify.d.ts +1 -2
  176. package/lib/sync/backfill/verify.d.ts.map +1 -1
  177. package/lib/sync/backfill/verify.js +2 -2
  178. package/lib/sync/backfill/verify.js.map +1 -1
  179. package/package.json +15 -15
  180. package/src/chain/blocks/verifyBlock.ts +0 -1
  181. package/src/chain/blocks/verifyBlocksSignatures.ts +4 -12
  182. package/src/chain/bls/multithread/index.ts +7 -4
  183. package/src/chain/bls/multithread/jobItem.ts +7 -3
  184. package/src/chain/bls/singleThread.ts +5 -3
  185. package/src/chain/bls/utils.ts +15 -7
  186. package/src/chain/chain.ts +25 -3
  187. package/src/chain/errors/attestationError.ts +11 -1
  188. package/src/chain/errors/executionPayloadBid.ts +35 -0
  189. package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
  190. package/src/chain/errors/index.ts +3 -0
  191. package/src/chain/errors/payloadAttestation.ts +25 -0
  192. package/src/chain/forkChoice/index.ts +19 -0
  193. package/src/chain/interface.ts +16 -1
  194. package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
  195. package/src/chain/opPools/index.ts +2 -0
  196. package/src/chain/opPools/payloadAttestationPool.ts +157 -0
  197. package/src/chain/regen/interface.ts +1 -0
  198. package/src/chain/seenCache/index.ts +3 -1
  199. package/src/chain/seenCache/seenAttesters.ts +5 -0
  200. package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
  201. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
  202. package/src/chain/validation/aggregateAndProof.ts +36 -14
  203. package/src/chain/validation/attestation.ts +33 -16
  204. package/src/chain/validation/attesterSlashing.ts +1 -6
  205. package/src/chain/validation/blobSidecar.ts +1 -6
  206. package/src/chain/validation/block.ts +5 -4
  207. package/src/chain/validation/dataColumnSidecar.ts +1 -6
  208. package/src/chain/validation/executionPayloadBid.ts +140 -0
  209. package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
  210. package/src/chain/validation/payloadAttestationMessage.ts +109 -0
  211. package/src/chain/validation/proposerSlashing.ts +1 -6
  212. package/src/chain/validation/signatureSets/aggregateAndProof.ts +9 -14
  213. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -4
  214. package/src/chain/validation/signatureSets/selectionProof.ts +9 -9
  215. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -4
  216. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -3
  217. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -4
  218. package/src/chain/validation/syncCommittee.ts +1 -1
  219. package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -5
  220. package/src/chain/validation/voluntaryExit.ts +1 -1
  221. package/src/metrics/metrics/lodestar.ts +40 -0
  222. package/src/network/gossip/interface.ts +17 -0
  223. package/src/network/gossip/scoringParameters.ts +44 -2
  224. package/src/network/gossip/topic.ts +21 -0
  225. package/src/network/processor/gossipHandlers.ts +48 -0
  226. package/src/network/processor/gossipQueues/index.ts +16 -0
  227. package/src/network/processor/index.ts +3 -0
  228. package/src/sync/backfill/backfill.ts +2 -2
  229. package/src/sync/backfill/verify.ts +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecar.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAY9D,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAQjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAK7C,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,CAAC,IAAI,CAAC,CA0Kf;AAiDD;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAQxG;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA6Jf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,IAAI,CAAC,iBAAiB,GACpC,QAAQ,CAEV"}
1
+ {"version":3,"file":"dataColumnSidecar.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAY9D,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAQjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAK7C,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,CAAC,IAAI,CAAC,CAyKf;AAiDD;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAQxG;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC1C,OAAO,CAAC,IAAI,CAAC,CAyJf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,IAAI,CAAC,iBAAiB,GACpC,QAAQ,CAEV"}
@@ -102,7 +102,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
102
102
  // 5) [REJECT] The proposer signature of sidecar.signed_block_header, is valid with respect to the block_header.proposer_index pubkey.
103
103
  const signature = dataColumnSidecar.signedBlockHeader.signature;
104
104
  if (!chain.seenBlockInputCache.isVerifiedProposerSignature(blockHeader.slot, blockRootHex, signature)) {
105
- const signatureSet = getBlockHeaderProposerSignatureSetByParentStateSlot(chain.config, chain.index2pubkey, blockState.slot, dataColumnSidecar.signedBlockHeader);
105
+ const signatureSet = getBlockHeaderProposerSignatureSetByParentStateSlot(chain.config, blockState.slot, dataColumnSidecar.signedBlockHeader);
106
106
  if (!(await chain.bls.verifySignatureSets([signatureSet], {
107
107
  // verify on main thread so that we only need to verify block proposer signature once per block
108
108
  verifyOnMainThread: true,
@@ -254,7 +254,7 @@ export async function validateBlockDataColumnSidecars(chain, blockSlot, blockRoo
254
254
  const slot = firstSidecarSignedBlockHeader.message.slot;
255
255
  const signature = firstSidecarSignedBlockHeader.signature;
256
256
  if (!chain.seenBlockInputCache.isVerifiedProposerSignature(slot, rootHex, signature)) {
257
- const signatureSet = getBlockHeaderProposerSignatureSetByHeaderSlot(chain.config, chain.index2pubkey, firstSidecarSignedBlockHeader);
257
+ const signatureSet = getBlockHeaderProposerSignatureSetByHeaderSlot(chain.config, firstSidecarSignedBlockHeader);
258
258
  if (!(await chain.bls.verifySignatureSets([signatureSet], {
259
259
  verifyOnMainThread: true,
260
260
  }))) {
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumnSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { gloas } from "@lodestar/types";
2
+ import { IBeaconChain } from "../index.js";
3
+ export declare function validateApiExecutionPayloadBid(chain: IBeaconChain, signedExecutionPayloadBid: gloas.SignedExecutionPayloadBid): Promise<void>;
4
+ export declare function validateGossipExecutionPayloadBid(chain: IBeaconChain, signedExecutionPayloadBid: gloas.SignedExecutionPayloadBid): Promise<void>;
5
+ //# sourceMappingURL=executionPayloadBid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBid.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,103 @@
1
+ import { PublicKey } from "@chainsafe/blst";
2
+ import { canBuilderCoverBid, createSingleSignatureSetFromComponents, getExecutionPayloadBidSigningRoot, isActiveBuilder, } from "@lodestar/state-transition";
3
+ import { toRootHex } from "@lodestar/utils";
4
+ import { ExecutionPayloadBidError, ExecutionPayloadBidErrorCode, GossipAction } from "../errors/index.js";
5
+ import { RegenCaller } from "../regen/index.js";
6
+ export async function validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid) {
7
+ return validateExecutionPayloadBid(chain, signedExecutionPayloadBid);
8
+ }
9
+ export async function validateGossipExecutionPayloadBid(chain, signedExecutionPayloadBid) {
10
+ return validateExecutionPayloadBid(chain, signedExecutionPayloadBid);
11
+ }
12
+ async function validateExecutionPayloadBid(chain, signedExecutionPayloadBid) {
13
+ const bid = signedExecutionPayloadBid.message;
14
+ const parentBlockRootHex = toRootHex(bid.parentBlockRoot);
15
+ const parentBlockHashHex = toRootHex(bid.parentBlockHash);
16
+ const state = (await chain.getHeadStateAtCurrentEpoch(RegenCaller.validateGossipExecutionPayloadBid));
17
+ // [IGNORE] `bid.slot` is the current slot or the next slot.
18
+ const currentSlot = chain.clock.currentSlot;
19
+ if (bid.slot !== currentSlot && bid.slot !== currentSlot + 1) {
20
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
21
+ code: ExecutionPayloadBidErrorCode.INVALID_SLOT,
22
+ builderIndex: bid.builderIndex,
23
+ slot: bid.slot,
24
+ });
25
+ }
26
+ // [IGNORE] the `SignedProposerPreferences` where `preferences.proposal_slot`
27
+ // is equal to `bid.slot` has been seen.
28
+ // TODO GLOAS: Implement this along with proposer preference
29
+ // [REJECT] `bid.builder_index` is a valid/active builder index -- i.e.
30
+ // `is_active_builder(state, bid.builder_index)` returns `True`.
31
+ if (!isActiveBuilder(state, bid.builderIndex)) {
32
+ throw new ExecutionPayloadBidError(GossipAction.REJECT, {
33
+ code: ExecutionPayloadBidErrorCode.BUILDER_NOT_ELIGIBLE,
34
+ builderIndex: bid.builderIndex,
35
+ });
36
+ }
37
+ // [REJECT] `bid.execution_payment` is zero.
38
+ if (bid.executionPayment !== 0) {
39
+ throw new ExecutionPayloadBidError(GossipAction.REJECT, {
40
+ code: ExecutionPayloadBidErrorCode.NON_ZERO_EXECUTION_PAYMENT,
41
+ builderIndex: bid.builderIndex,
42
+ executionPayment: bid.executionPayment,
43
+ });
44
+ }
45
+ // [REJECT] `bid.fee_recipient` matches the `fee_recipient` from the proposer's
46
+ // `SignedProposerPreferences` associated with `bid.slot`.
47
+ // [REJECT] `bid.gas_limit` matches the `gas_limit` from the proposer's
48
+ // `SignedProposerPreferences` associated with `bid.slot`.
49
+ // TODO GLOAS: Implement this along with proposer preference
50
+ // [IGNORE] this is the first signed bid seen with a valid signature from the given builder for this slot.
51
+ if (chain.seenExecutionPayloadBids.isKnown(bid.slot, bid.builderIndex)) {
52
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
53
+ code: ExecutionPayloadBidErrorCode.BID_ALREADY_KNOWN,
54
+ builderIndex: bid.builderIndex,
55
+ slot: bid.slot,
56
+ parentBlockRoot: parentBlockRootHex,
57
+ parentBlockHash: parentBlockHashHex,
58
+ });
59
+ }
60
+ // [IGNORE] this bid is the highest value bid seen for the corresponding slot
61
+ // and the given parent block hash.
62
+ const bestBid = chain.executionPayloadBidPool.getBestBid(parentBlockRootHex, parentBlockHashHex, bid.slot);
63
+ if (bestBid !== null && bestBid.value >= bid.value) {
64
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
65
+ code: ExecutionPayloadBidErrorCode.BID_TOO_LOW,
66
+ bidValue: bid.value,
67
+ currentHighestBid: bestBid.value,
68
+ });
69
+ }
70
+ // [IGNORE] `bid.value` is less or equal than the builder's excess balance --
71
+ // i.e. `can_builder_cover_bid(state, builder_index, amount)` returns `True`.
72
+ if (!canBuilderCoverBid(state, bid.builderIndex, bid.value)) {
73
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
74
+ code: ExecutionPayloadBidErrorCode.BID_TOO_HIGH,
75
+ bidValue: bid.value,
76
+ builderBalance: state.builders.getReadonly(bid.builderIndex).balance,
77
+ });
78
+ }
79
+ // [IGNORE] `bid.parent_block_hash` is the block hash of a known execution
80
+ // payload in fork choice.
81
+ // TODO GLOAS: implement this
82
+ // [IGNORE] `bid.parent_block_root` is the hash tree root of a known beacon
83
+ // block in fork choice.
84
+ const block = chain.forkChoice.getBlock(bid.parentBlockRoot);
85
+ if (block === null) {
86
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
87
+ code: ExecutionPayloadBidErrorCode.UNKNOWN_BLOCK_ROOT,
88
+ parentBlockRoot: parentBlockRootHex,
89
+ });
90
+ }
91
+ // [REJECT] `signed_execution_payload_bid.signature` is valid with respect to the `bid.builder_index`.
92
+ const signatureSet = createSingleSignatureSetFromComponents(PublicKey.fromBytes(state.builders.getReadonly(bid.builderIndex).pubkey), getExecutionPayloadBidSigningRoot(chain.config, state, bid), signedExecutionPayloadBid.signature);
93
+ if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
94
+ throw new ExecutionPayloadBidError(GossipAction.REJECT, {
95
+ code: ExecutionPayloadBidErrorCode.INVALID_SIGNATURE,
96
+ builderIndex: bid.builderIndex,
97
+ slot: bid.slot,
98
+ });
99
+ }
100
+ // Valid
101
+ chain.seenExecutionPayloadBids.add(bid.slot, bid.builderIndex);
102
+ }
103
+ //# sourceMappingURL=executionPayloadBid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { gloas } from "@lodestar/types";
2
+ import { IBeaconChain } from "../index.js";
3
+ export declare function validateApiExecutionPayloadEnvelope(chain: IBeaconChain, executionPayloadEnvelope: gloas.SignedExecutionPayloadEnvelope): Promise<void>;
4
+ export declare function validateGossipExecutionPayloadEnvelope(chain: IBeaconChain, executionPayloadEnvelope: gloas.SignedExecutionPayloadEnvelope): Promise<void>;
5
+ //# sourceMappingURL=executionPayloadEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC,wBAAsB,mCAAmC,CACvD,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,KAAK,CAAC,8BAA8B,GAC7D,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,KAAK,CAAC,8BAA8B,GAC7D,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,89 @@
1
+ import { PublicKey } from "@chainsafe/blst";
2
+ import { computeStartSlotAtEpoch, createSingleSignatureSetFromComponents, getExecutionPayloadEnvelopeSigningRoot, } from "@lodestar/state-transition";
3
+ import { toRootHex } from "@lodestar/utils";
4
+ import { ExecutionPayloadEnvelopeError, ExecutionPayloadEnvelopeErrorCode, GossipAction } from "../errors/index.js";
5
+ export async function validateApiExecutionPayloadEnvelope(chain, executionPayloadEnvelope) {
6
+ return validateExecutionPayloadEnvelope(chain, executionPayloadEnvelope);
7
+ }
8
+ export async function validateGossipExecutionPayloadEnvelope(chain, executionPayloadEnvelope) {
9
+ return validateExecutionPayloadEnvelope(chain, executionPayloadEnvelope);
10
+ }
11
+ async function validateExecutionPayloadEnvelope(chain, executionPayloadEnvelope) {
12
+ const envelope = executionPayloadEnvelope.message;
13
+ const { payload } = envelope;
14
+ const blockRootHex = toRootHex(envelope.beaconBlockRoot);
15
+ // [IGNORE] The envelope's block root `envelope.block_root` has been seen (via
16
+ // gossip or non-gossip sources) (a client MAY queue payload for processing once
17
+ // the block is retrieved).
18
+ // TODO GLOAS: Need to review this
19
+ const block = chain.forkChoice.getBlock(envelope.beaconBlockRoot);
20
+ if (block === null) {
21
+ throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
22
+ code: ExecutionPayloadEnvelopeErrorCode.BLOCK_ROOT_UNKNOWN,
23
+ blockRoot: blockRootHex,
24
+ });
25
+ }
26
+ // [IGNORE] The node has not seen another valid
27
+ // `SignedExecutionPayloadEnvelope` for this block root from this builder.
28
+ if (chain.seenExecutionPayloadEnvelopes.isKnown(blockRootHex)) {
29
+ throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
30
+ code: ExecutionPayloadEnvelopeErrorCode.ENVELOPE_ALREADY_KNOWN,
31
+ blockRoot: blockRootHex,
32
+ slot: envelope.slot,
33
+ });
34
+ }
35
+ // [IGNORE] The envelope is from a slot greater than or equal to the latest finalized slot -- i.e. validate that `envelope.slot >= compute_start_slot_at_epoch(store.finalized_checkpoint.epoch)`
36
+ const finalizedCheckpoint = chain.forkChoice.getFinalizedCheckpoint();
37
+ const finalizedSlot = computeStartSlotAtEpoch(finalizedCheckpoint.epoch);
38
+ if (envelope.slot < finalizedSlot) {
39
+ throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
40
+ code: ExecutionPayloadEnvelopeErrorCode.BELONG_TO_FINALIZED_BLOCK,
41
+ envelopeSlot: envelope.slot,
42
+ finalizedSlot,
43
+ });
44
+ }
45
+ // [REJECT] `block` passes validation.
46
+ // TODO GLOAS: implement this. Technically if we cannot get proto block from fork choice,
47
+ // it is possible that the block didn't pass the validation
48
+ // [REJECT] `block.slot` equals `envelope.slot`.
49
+ if (block.slot !== envelope.slot) {
50
+ throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
51
+ code: ExecutionPayloadEnvelopeErrorCode.SLOT_MISMATCH,
52
+ envelopeSlot: envelope.slot,
53
+ blockSlot: block.slot,
54
+ });
55
+ }
56
+ if (block.builderIndex === undefined || block.blockHashHex === undefined) {
57
+ // This indicates this block is a pre-gloas block which is wrong
58
+ throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
59
+ code: ExecutionPayloadEnvelopeErrorCode.CACHE_FAIL,
60
+ blockRoot: blockRootHex,
61
+ });
62
+ }
63
+ // [REJECT] `envelope.builder_index == bid.builder_index`
64
+ if (envelope.builderIndex !== block.builderIndex) {
65
+ throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
66
+ code: ExecutionPayloadEnvelopeErrorCode.BUILDER_INDEX_MISMATCH,
67
+ envelopeBuilderIndex: envelope.builderIndex,
68
+ bidBuilderIndex: block.builderIndex,
69
+ });
70
+ }
71
+ // [REJECT] `payload.block_hash == bid.block_hash`
72
+ if (toRootHex(payload.blockHash) !== block.blockHashHex) {
73
+ throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
74
+ code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH,
75
+ envelopeBlockHash: toRootHex(payload.blockHash),
76
+ bidBlockHash: block.blockHashHex,
77
+ });
78
+ }
79
+ // [REJECT] `signed_execution_payload_envelope.signature` is valid with respect to the builder's public key.
80
+ const state = chain.getHeadState();
81
+ const signatureSet = createSingleSignatureSetFromComponents(PublicKey.fromBytes(state.builders.getReadonly(envelope.builderIndex).pubkey), getExecutionPayloadEnvelopeSigningRoot(chain.config, envelope), executionPayloadEnvelope.signature);
82
+ if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
83
+ throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
84
+ code: ExecutionPayloadEnvelopeErrorCode.INVALID_SIGNATURE,
85
+ });
86
+ }
87
+ chain.seenExecutionPayloadEnvelopes.add(blockRootHex, envelope.slot);
88
+ }
89
+ //# sourceMappingURL=executionPayloadEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RootHex, gloas } from "@lodestar/types";
2
+ import { IBeaconChain } from "../index.js";
3
+ export type PayloadAttestationValidationResult = {
4
+ attDataRootHex: RootHex;
5
+ validatorCommitteeIndex: number;
6
+ };
7
+ export declare function validateApiPayloadAttestationMessage(chain: IBeaconChain, payloadAttestationMessage: gloas.PayloadAttestationMessage): Promise<PayloadAttestationValidationResult>;
8
+ export declare function validateGossipPayloadAttestationMessage(chain: IBeaconChain, payloadAttestationMessage: gloas.PayloadAttestationMessage): Promise<PayloadAttestationValidationResult>;
9
+ //# sourceMappingURL=payloadAttestationMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadAttestationMessage.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/payloadAttestationMessage.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,kCAAkC,GAAG;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,kCAAkC,CAAC,CAE7C;AAED,wBAAsB,uCAAuC,CAC3D,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,GACzD,OAAO,CAAC,kCAAkC,CAAC,CAE7C"}
@@ -0,0 +1,72 @@
1
+ import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getPayloadAttestationDataSigningRoot, } from "@lodestar/state-transition";
2
+ import { ssz } from "@lodestar/types";
3
+ import { toRootHex } from "@lodestar/utils";
4
+ import { GossipAction, PayloadAttestationError, PayloadAttestationErrorCode } from "../errors/index.js";
5
+ export async function validateApiPayloadAttestationMessage(chain, payloadAttestationMessage) {
6
+ return validatePayloadAttestationMessage(chain, payloadAttestationMessage);
7
+ }
8
+ export async function validateGossipPayloadAttestationMessage(chain, payloadAttestationMessage) {
9
+ return validatePayloadAttestationMessage(chain, payloadAttestationMessage);
10
+ }
11
+ async function validatePayloadAttestationMessage(chain, payloadAttestationMessage) {
12
+ const { data, validatorIndex } = payloadAttestationMessage;
13
+ const epoch = computeEpochAtSlot(data.slot);
14
+ // [IGNORE] The message's slot is for the current slot (with a `MAXIMUM_GOSSIP_CLOCK_DISPARITY` allowance), i.e. `data.slot == current_slot`.
15
+ if (!chain.clock.isCurrentSlotGivenGossipDisparity(data.slot)) {
16
+ throw new PayloadAttestationError(GossipAction.IGNORE, {
17
+ code: PayloadAttestationErrorCode.NOT_CURRENT_SLOT,
18
+ currentSlot: chain.clock.currentSlot,
19
+ slot: data.slot,
20
+ });
21
+ }
22
+ // [IGNORE] The `payload_attestation_message` is the first valid message received
23
+ // from the validator with index `payload_attestation_message.validator_index`.
24
+ // A single validator can participate PTC at most once per epoch
25
+ if (chain.seenPayloadAttesters.isKnown(epoch, validatorIndex)) {
26
+ throw new PayloadAttestationError(GossipAction.IGNORE, {
27
+ code: PayloadAttestationErrorCode.PAYLOAD_ATTESTATION_ALREADY_KNOWN,
28
+ validatorIndex,
29
+ slot: data.slot,
30
+ blockRoot: toRootHex(data.beaconBlockRoot),
31
+ });
32
+ }
33
+ // [IGNORE] The message's block `data.beacon_block_root` has been seen (via
34
+ // gossip or non-gossip sources) (a client MAY queue attestation for processing
35
+ // once the block is retrieved. Note a client might want to request payload after).
36
+ const block = chain.forkChoice.getBlock(data.beaconBlockRoot);
37
+ if (block === null) {
38
+ throw new PayloadAttestationError(GossipAction.IGNORE, {
39
+ code: PayloadAttestationErrorCode.UNKNOWN_BLOCK_ROOT,
40
+ blockRoot: toRootHex(data.beaconBlockRoot),
41
+ });
42
+ }
43
+ const state = chain.getHeadState();
44
+ // [REJECT] The message's block `data.beacon_block_root` passes validation.
45
+ // TODO GLOAS: implement this. Technically if we cannot get proto block from fork choice,
46
+ // it is possible that the block didn't pass the validation
47
+ // [REJECT] The message's validator index is within the payload committee in
48
+ // `get_ptc(state, data.slot)`. The `state` is the head state corresponding to
49
+ // processing the block up to the current slot as determined by the fork choice.
50
+ const ptc = state.epochCtx.getPayloadTimelinessCommittee(data.slot);
51
+ const validatorCommitteeIndex = ptc.indexOf(validatorIndex);
52
+ if (validatorCommitteeIndex === -1) {
53
+ throw new PayloadAttestationError(GossipAction.REJECT, {
54
+ code: PayloadAttestationErrorCode.INVALID_ATTESTER,
55
+ attesterIndex: validatorIndex,
56
+ });
57
+ }
58
+ // [REJECT] `payload_attestation_message.signature` is valid with respect to the validator's public key.
59
+ const signatureSet = createSingleSignatureSetFromComponents(chain.index2pubkey[validatorIndex], getPayloadAttestationDataSigningRoot(state, data), payloadAttestationMessage.signature);
60
+ if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
61
+ throw new PayloadAttestationError(GossipAction.REJECT, {
62
+ code: PayloadAttestationErrorCode.INVALID_SIGNATURE,
63
+ });
64
+ }
65
+ // Valid
66
+ chain.seenPayloadAttesters.add(epoch, validatorIndex);
67
+ return {
68
+ attDataRootHex: toRootHex(ssz.gloas.PayloadAttestationData.hashTreeRoot(data)),
69
+ validatorCommitteeIndex,
70
+ };
71
+ }
72
+ //# sourceMappingURL=payloadAttestationMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadAttestationMessage.js","sourceRoot":"","sources":["../../../src/chain/validation/payloadAttestationMessage.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ async function validateProposerSlashing(chain, proposerSlashing, prioritizeBls =
28
28
  error: e,
29
29
  });
30
30
  }
31
- const signatureSets = getProposerSlashingSignatureSets(chain.config, chain.index2pubkey, state.slot, proposerSlashing);
31
+ const signatureSets = getProposerSlashingSignatureSets(chain.config, state.slot, proposerSlashing);
32
32
  if (!(await chain.bls.verifySignatureSets(signatureSets, { batchable: true, priority: prioritizeBls }))) {
33
33
  throw new ProposerSlashingError(GossipAction.REJECT, {
34
34
  code: ProposerSlashingErrorCode.INVALID,
@@ -1 +1 @@
1
- {"version":3,"file":"proposerSlashing.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAE,gCAAgC,EAAC,MAAM,4BAA4B,CAAC;AAEzG,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAGlG,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAmB,EACnB,gBAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAmB,EACnB,gBAAyC;IAEzC,OAAO,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,KAAmB,EACnB,gBAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,2GAA2G;IAC3G,4DAA4D;IAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,cAAc;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAEnC,mFAAmF;IACnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACpG,mDAAmD;QACnD,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,OAAO;YACvC,KAAK,EAAE,CAAU;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,gCAAgC,CACpD,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,IAAI,EACV,gBAAgB,CACjB,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,OAAO;YACvC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"proposerSlashing.js","sourceRoot":"","sources":["../../../src/chain/validation/proposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAE,gCAAgC,EAAC,MAAM,4BAA4B,CAAC;AAEzG,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAE,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAGlG,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAmB,EACnB,gBAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAmB,EACnB,gBAAyC;IAEzC,OAAO,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,KAAmB,EACnB,gBAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,2GAA2G;IAC3G,4DAA4D;IAC5D,IAAI,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,cAAc;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAEnC,mFAAmF;IACnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACpG,mDAAmD;QACnD,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,OAAO;YACvC,KAAK,EAAE,CAAU;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,gCAAgC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACnG,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE;YACnD,IAAI,EAAE,yBAAyB,CAAC,OAAO;YACvC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,7 +1,6 @@
1
- import { PublicKey } from "@chainsafe/blst";
2
1
  import { BeaconConfig } from "@lodestar/config";
3
2
  import { ISignatureSet } from "@lodestar/state-transition";
4
- import { Epoch, SignedAggregateAndProof } from "@lodestar/types";
3
+ import { Epoch, SignedAggregateAndProof, ValidatorIndex } from "@lodestar/types";
5
4
  export declare function getAggregateAndProofSigningRoot(config: BeaconConfig, epoch: Epoch, aggregateAndProof: SignedAggregateAndProof): Uint8Array;
6
- export declare function getAggregateAndProofSignatureSet(config: BeaconConfig, epoch: Epoch, aggregator: PublicKey, aggregateAndProof: SignedAggregateAndProof): ISignatureSet;
5
+ export declare function getAggregateAndProofSignatureSet(config: BeaconConfig, epoch: Epoch, aggregatorIndex: ValidatorIndex, aggregateAndProof: SignedAggregateAndProof): ISignatureSet;
7
6
  //# sourceMappingURL=aggregateAndProof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,aAAa,EAId,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAM,MAAM,iBAAiB,CAAC;AAEpE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,uBAAuB,GACzC,UAAU,CASZ;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,uBAAuB,GACzC,aAAa,CAMf"}
1
+ {"version":3,"file":"aggregateAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAC,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAM,MAAM,iBAAiB,CAAC;AAEpF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,uBAAuB,GACzC,UAAU,CASZ;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,EAC/B,iBAAiB,EAAE,uBAAuB,GACzC,aAAa,CAOf"}
@@ -1,5 +1,5 @@
1
1
  import { DOMAIN_AGGREGATE_AND_PROOF, ForkSeq } from "@lodestar/params";
2
- import { computeSigningRoot, computeStartSlotAtEpoch, createSingleSignatureSetFromComponents, } from "@lodestar/state-transition";
2
+ import { SignatureSetType, computeSigningRoot, computeStartSlotAtEpoch } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof) {
5
5
  // previously, we call `const aggregatorDomain = config.getDomain(state.slot, DOMAIN_AGGREGATE_AND_PROOF, slot);`
@@ -11,7 +11,12 @@ export function getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof
11
11
  const sszType = ForkSeq[fork] >= ForkSeq.electra ? ssz.electra.AggregateAndProof : ssz.phase0.AggregateAndProof;
12
12
  return computeSigningRoot(sszType, aggregateAndProof.message, aggregatorDomain);
13
13
  }
14
- export function getAggregateAndProofSignatureSet(config, epoch, aggregator, aggregateAndProof) {
15
- return createSingleSignatureSetFromComponents(aggregator, getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof), aggregateAndProof.signature);
14
+ export function getAggregateAndProofSignatureSet(config, epoch, aggregatorIndex, aggregateAndProof) {
15
+ return {
16
+ type: SignatureSetType.indexed,
17
+ index: aggregatorIndex,
18
+ signingRoot: getAggregateAndProofSigningRoot(config, epoch, aggregateAndProof),
19
+ signature: aggregateAndProof.signature,
20
+ };
16
21
  }
17
22
  //# sourceMappingURL=aggregateAndProof.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,0BAA0B,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAEL,kBAAkB,EAClB,uBAAuB,EACvB,sCAAsC,GACvC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAiC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpE,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,KAAY,EACZ,iBAA0C;IAE1C,iHAAiH;IACjH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAChH,OAAO,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,KAAY,EACZ,UAAqB,EACrB,iBAA0C;IAE1C,OAAO,sCAAsC,CAC3C,UAAU,EACV,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,EACjE,iBAAiB,CAAC,SAAS,CAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/aggregateAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAiD,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpF,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,KAAY,EACZ,iBAA0C;IAE1C,iHAAiH;IACjH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAChH,OAAO,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,KAAY,EACZ,eAA+B,EAC/B,iBAA0C;IAE1C,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAC9E,SAAS,EAAE,iBAAiB,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
- import { CachedBeaconStateAllForks, ISignatureSet, Index2PubkeyCache } from "@lodestar/state-transition";
2
+ import { CachedBeaconStateAllForks, ISignatureSet } from "@lodestar/state-transition";
3
3
  import { altair } from "@lodestar/types";
4
- export declare function getContributionAndProofSignatureSet(config: BeaconConfig, index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, signedContributionAndProof: altair.SignedContributionAndProof): ISignatureSet;
4
+ export declare function getContributionAndProofSignatureSet(config: BeaconConfig, state: CachedBeaconStateAllForks, signedContributionAndProof: altair.SignedContributionAndProof): ISignatureSet;
5
5
  //# sourceMappingURL=contributionAndProof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contributionAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/contributionAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,0BAA0B,EAAE,MAAM,CAAC,0BAA0B,GAC5D,aAAa,CAaf"}
1
+ {"version":3,"file":"contributionAndProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/contributionAndProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,aAAa,EAGd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,yBAAyB,EAChC,0BAA0B,EAAE,MAAM,CAAC,0BAA0B,GAC5D,aAAa,CAaf"}
@@ -1,12 +1,12 @@
1
1
  import { DOMAIN_CONTRIBUTION_AND_PROOF } from "@lodestar/params";
2
2
  import { SignatureSetType, computeSigningRoot, } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
- export function getContributionAndProofSignatureSet(config, index2pubkey, state, signedContributionAndProof) {
4
+ export function getContributionAndProofSignatureSet(config, state, signedContributionAndProof) {
5
5
  const domain = config.getDomain(state.slot, DOMAIN_CONTRIBUTION_AND_PROOF, signedContributionAndProof.message.contribution.slot);
6
6
  const signingData = signedContributionAndProof.message;
7
7
  return {
8
- type: SignatureSetType.single,
9
- pubkey: index2pubkey[signedContributionAndProof.message.aggregatorIndex],
8
+ type: SignatureSetType.indexed,
9
+ index: signedContributionAndProof.message.aggregatorIndex,
10
10
  signingRoot: computeSigningRoot(ssz.altair.ContributionAndProof, signingData, domain),
11
11
  signature: signedContributionAndProof.signature,
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contributionAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/contributionAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,6BAA6B,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAIL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,YAA+B,EAC/B,KAAgC,EAChC,0BAA6D;IAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC7B,KAAK,CAAC,IAAI,EACV,6BAA6B,EAC7B,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACrD,CAAC;IACF,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC;IACvD,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,YAAY,CAAC,0BAA0B,CAAC,OAAO,CAAC,eAAe,CAAC;QACxE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,EAAE,MAAM,CAAC;QACrF,SAAS,EAAE,0BAA0B,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"contributionAndProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/contributionAndProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,6BAA6B,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,KAAgC,EAChC,0BAA6D;IAE7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAC7B,KAAK,CAAC,IAAI,EACV,6BAA6B,EAC7B,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACrD,CAAC;IACF,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC;IACvD,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC,eAAe;QACzD,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,EAAE,MAAM,CAAC;QACrF,SAAS,EAAE,0BAA0B,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC"}
@@ -1,7 +1,6 @@
1
- import { PublicKey } from "@chainsafe/blst";
2
1
  import { BeaconConfig } from "@lodestar/config";
3
2
  import { ISignatureSet } from "@lodestar/state-transition";
4
- import { Slot, phase0 } from "@lodestar/types";
3
+ import { Slot, ValidatorIndex, phase0 } from "@lodestar/types";
5
4
  export declare function getSelectionProofSigningRoot(config: BeaconConfig, slot: Slot): Uint8Array;
6
- export declare function getSelectionProofSignatureSet(config: BeaconConfig, slot: Slot, aggregator: PublicKey, aggregateAndProof: phase0.SignedAggregateAndProof): ISignatureSet;
5
+ export declare function getSelectionProofSignatureSet(config: BeaconConfig, slot: Slot, aggregatorIndex: ValidatorIndex, aggregateAndProof: phase0.SignedAggregateAndProof): ISignatureSet;
7
6
  //# sourceMappingURL=selectionProof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectionProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/selectionProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAA6D,MAAM,4BAA4B,CAAC;AACrH,OAAO,EAAC,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAOzF;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,MAAM,CAAC,uBAAuB,GAChD,aAAa,CAMf"}
1
+ {"version":3,"file":"selectionProof.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/selectionProof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAuC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAOzF;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,cAAc,EAC/B,iBAAiB,EAAE,MAAM,CAAC,uBAAuB,GAChD,aAAa,CAOf"}
@@ -1,5 +1,5 @@
1
1
  import { DOMAIN_SELECTION_PROOF } from "@lodestar/params";
2
- import { computeSigningRoot, createSingleSignatureSetFromComponents } from "@lodestar/state-transition";
2
+ import { SignatureSetType, computeSigningRoot } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  export function getSelectionProofSigningRoot(config, slot) {
5
5
  // previously, we call `const selectionProofDomain = config.getDomain(state.slot, DOMAIN_SELECTION_PROOF, slot)`
@@ -9,7 +9,12 @@ export function getSelectionProofSigningRoot(config, slot) {
9
9
  const selectionProofDomain = config.getDomainAtFork(fork, DOMAIN_SELECTION_PROOF);
10
10
  return computeSigningRoot(ssz.Slot, slot, selectionProofDomain);
11
11
  }
12
- export function getSelectionProofSignatureSet(config, slot, aggregator, aggregateAndProof) {
13
- return createSingleSignatureSetFromComponents(aggregator, getSelectionProofSigningRoot(config, slot), aggregateAndProof.message.selectionProof);
12
+ export function getSelectionProofSignatureSet(config, slot, aggregatorIndex, aggregateAndProof) {
13
+ return {
14
+ type: SignatureSetType.indexed,
15
+ index: aggregatorIndex,
16
+ signingRoot: getSelectionProofSigningRoot(config, slot),
17
+ signature: aggregateAndProof.message.selectionProof,
18
+ };
14
19
  }
15
20
  //# sourceMappingURL=selectionProof.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectionProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/selectionProof.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAgB,kBAAkB,EAAE,sCAAsC,EAAC,MAAM,4BAA4B,CAAC;AACrH,OAAO,EAAe,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAElD,MAAM,UAAU,4BAA4B,CAAC,MAAoB,EAAE,IAAU;IAC3E,gHAAgH;IAChH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,oBAAoB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAClF,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAoB,EACpB,IAAU,EACV,UAAqB,EACrB,iBAAiD;IAEjD,OAAO,sCAAsC,CAC3C,UAAU,EACV,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,iBAAiB,CAAC,OAAO,CAAC,cAAc,CACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"selectionProof.js","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/selectionProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAA+B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAElE,MAAM,UAAU,4BAA4B,CAAC,MAAoB,EAAE,IAAU;IAC3E,gHAAgH;IAChH,2KAA2K;IAC3K,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,oBAAoB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAClF,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAoB,EACpB,IAAU,EACV,eAA+B,EAC/B,iBAAiD;IAEjD,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO;QAC9B,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC;QACvD,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,cAAc;KACpD,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
- import { CachedBeaconStateAllForks, ISignatureSet, Index2PubkeyCache } from "@lodestar/state-transition";
2
+ import { CachedBeaconStateAllForks, ISignatureSet } from "@lodestar/state-transition";
3
3
  import { altair } from "@lodestar/types";
4
- export declare function getSyncCommitteeSignatureSet(config: BeaconConfig, index2pubkey: Index2PubkeyCache, state: CachedBeaconStateAllForks, syncCommittee: altair.SyncCommitteeMessage): ISignatureSet;
4
+ export declare function getSyncCommitteeSignatureSet(config: BeaconConfig, state: CachedBeaconStateAllForks, syncCommittee: altair.SyncCommitteeMessage): ISignatureSet;
5
5
  //# sourceMappingURL=syncCommittee.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncCommittee.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/syncCommittee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EAGlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,yBAAyB,EAChC,aAAa,EAAE,MAAM,CAAC,oBAAoB,GACzC,aAAa,CASf"}
1
+ {"version":3,"file":"syncCommittee.d.ts","sourceRoot":"","sources":["../../../../src/chain/validation/signatureSets/syncCommittee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,aAAa,EAGd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,yBAAyB,EAChC,aAAa,EAAE,MAAM,CAAC,oBAAoB,GACzC,aAAa,CASf"}