@lodestar/beacon-node 1.36.0-dev.793f92c091 → 1.36.0-dev.801b1f4f52

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 (294) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +41 -22
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/config/constants.d.ts +4 -2
  5. package/lib/api/impl/config/constants.d.ts.map +1 -1
  6. package/lib/api/impl/config/constants.js +6 -3
  7. package/lib/api/impl/config/constants.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.d.ts +5 -0
  9. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  10. package/lib/api/impl/lodestar/index.js +35 -10
  11. package/lib/api/impl/lodestar/index.js.map +1 -1
  12. package/lib/api/impl/node/utils.js +1 -1
  13. package/lib/api/impl/node/utils.js.map +1 -1
  14. package/lib/api/impl/validator/index.d.ts.map +1 -1
  15. package/lib/api/impl/validator/index.js +2 -2
  16. package/lib/api/impl/validator/index.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.d.ts +9 -0
  18. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  19. package/lib/chain/archiveStore/archiveStore.js +24 -0
  20. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  21. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +7 -0
  22. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  23. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +31 -5
  24. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  25. package/lib/chain/beaconProposerCache.d.ts +3 -0
  26. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  27. package/lib/chain/beaconProposerCache.js +4 -6
  28. package/lib/chain/beaconProposerCache.js.map +1 -1
  29. package/lib/chain/chain.d.ts +5 -2
  30. package/lib/chain/chain.d.ts.map +1 -1
  31. package/lib/chain/chain.js +34 -18
  32. package/lib/chain/chain.js.map +1 -1
  33. package/lib/chain/errors/blobSidecarError.d.ts +5 -0
  34. package/lib/chain/errors/blobSidecarError.d.ts.map +1 -1
  35. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  36. package/lib/chain/errors/blockError.d.ts +1 -0
  37. package/lib/chain/errors/blockError.d.ts.map +1 -1
  38. package/lib/chain/errors/dataColumnSidecarError.d.ts +27 -13
  39. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  40. package/lib/chain/errors/dataColumnSidecarError.js +5 -0
  41. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  42. package/lib/chain/errors/voluntaryExitError.d.ts +16 -2
  43. package/lib/chain/errors/voluntaryExitError.d.ts.map +1 -1
  44. package/lib/chain/errors/voluntaryExitError.js +22 -1
  45. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  46. package/lib/chain/forkChoice/index.d.ts +9 -1
  47. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  48. package/lib/chain/forkChoice/index.js +109 -4
  49. package/lib/chain/forkChoice/index.js.map +1 -1
  50. package/lib/chain/interface.d.ts +2 -0
  51. package/lib/chain/interface.d.ts.map +1 -1
  52. package/lib/chain/lightClient/index.d.ts +3 -0
  53. package/lib/chain/lightClient/index.d.ts.map +1 -1
  54. package/lib/chain/lightClient/index.js +24 -13
  55. package/lib/chain/lightClient/index.js.map +1 -1
  56. package/lib/chain/opPools/syncContributionAndProofPool.d.ts +3 -1
  57. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  58. package/lib/chain/opPools/syncContributionAndProofPool.js +4 -3
  59. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  60. package/lib/chain/options.d.ts +0 -2
  61. package/lib/chain/options.d.ts.map +1 -1
  62. package/lib/chain/options.js +2 -2
  63. package/lib/chain/options.js.map +1 -1
  64. package/lib/chain/stateCache/datastore/db.d.ts +12 -0
  65. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  66. package/lib/chain/stateCache/datastore/db.js +70 -0
  67. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  68. package/lib/chain/stateCache/datastore/file.d.ts +1 -0
  69. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  70. package/lib/chain/stateCache/datastore/file.js +7 -0
  71. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  72. package/lib/chain/stateCache/datastore/types.d.ts +1 -0
  73. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  74. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +16 -1
  75. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  76. package/lib/chain/stateCache/persistentCheckpointsCache.js +31 -1
  77. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  78. package/lib/chain/validation/attestation.d.ts.map +1 -1
  79. package/lib/chain/validation/attestation.js +6 -7
  80. package/lib/chain/validation/attestation.js.map +1 -1
  81. package/lib/chain/validation/blobSidecar.d.ts +4 -1
  82. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  83. package/lib/chain/validation/blobSidecar.js +46 -11
  84. package/lib/chain/validation/blobSidecar.js.map +1 -1
  85. package/lib/chain/validation/block.d.ts.map +1 -1
  86. package/lib/chain/validation/block.js +2 -2
  87. package/lib/chain/validation/block.js.map +1 -1
  88. package/lib/chain/validation/dataColumnSidecar.d.ts +4 -1
  89. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  90. package/lib/chain/validation/dataColumnSidecar.js +76 -20
  91. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  92. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +1 -1
  93. package/lib/chain/validation/lightClientOptimisticUpdate.js +1 -2
  94. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  95. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  96. package/lib/chain/validation/voluntaryExit.js +5 -4
  97. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  98. package/lib/constants/constants.d.ts +0 -5
  99. package/lib/constants/constants.d.ts.map +1 -1
  100. package/lib/constants/constants.js +0 -5
  101. package/lib/constants/constants.js.map +1 -1
  102. package/lib/constants/network.d.ts +0 -14
  103. package/lib/constants/network.d.ts.map +1 -1
  104. package/lib/constants/network.js +0 -15
  105. package/lib/constants/network.js.map +1 -1
  106. package/lib/index.d.ts +2 -0
  107. package/lib/index.d.ts.map +1 -1
  108. package/lib/index.js +2 -0
  109. package/lib/index.js.map +1 -1
  110. package/lib/metrics/metrics/lodestar.d.ts +11 -0
  111. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  112. package/lib/metrics/metrics/lodestar.js +19 -1
  113. package/lib/metrics/metrics/lodestar.js.map +1 -1
  114. package/lib/network/core/networkCore.d.ts.map +1 -1
  115. package/lib/network/core/networkCore.js +5 -1
  116. package/lib/network/core/networkCore.js.map +1 -1
  117. package/lib/network/core/networkCoreWorker.js +8 -8
  118. package/lib/network/core/networkCoreWorker.js.map +1 -1
  119. package/lib/network/core/networkCoreWorkerHandler.js +1 -1
  120. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  121. package/lib/network/discv5/utils.d.ts.map +1 -1
  122. package/lib/network/discv5/utils.js +1 -2
  123. package/lib/network/discv5/utils.js.map +1 -1
  124. package/lib/network/discv5/worker.js +2 -7
  125. package/lib/network/discv5/worker.js.map +1 -1
  126. package/lib/network/events.d.ts +1 -0
  127. package/lib/network/events.d.ts.map +1 -1
  128. package/lib/network/gossip/encoding.js +1 -1
  129. package/lib/network/gossip/encoding.js.map +1 -1
  130. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  131. package/lib/network/gossip/gossipsub.js +7 -8
  132. package/lib/network/gossip/gossipsub.js.map +1 -1
  133. package/lib/network/gossip/interface.d.ts +2 -0
  134. package/lib/network/gossip/interface.d.ts.map +1 -1
  135. package/lib/network/gossip/snappy_bun.d.ts +3 -0
  136. package/lib/network/gossip/snappy_bun.d.ts.map +1 -0
  137. package/lib/network/gossip/snappy_bun.js +3 -0
  138. package/lib/network/gossip/snappy_bun.js.map +1 -0
  139. package/lib/network/metadata.d.ts +1 -1
  140. package/lib/network/metadata.d.ts.map +1 -1
  141. package/lib/network/metadata.js +1 -0
  142. package/lib/network/metadata.js.map +1 -1
  143. package/lib/network/network.d.ts.map +1 -1
  144. package/lib/network/network.js +1 -0
  145. package/lib/network/network.js.map +1 -1
  146. package/lib/network/options.d.ts +0 -1
  147. package/lib/network/options.d.ts.map +1 -1
  148. package/lib/network/options.js.map +1 -1
  149. package/lib/network/peers/discover.js +2 -2
  150. package/lib/network/peers/discover.js.map +1 -1
  151. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  152. package/lib/network/processor/gossipHandlers.js +28 -8
  153. package/lib/network/processor/gossipHandlers.js.map +1 -1
  154. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  155. package/lib/network/processor/gossipValidatorFn.js +8 -6
  156. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  157. package/lib/network/processor/types.d.ts +2 -0
  158. package/lib/network/processor/types.d.ts.map +1 -1
  159. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  160. package/lib/network/reqresp/ReqRespBeaconNode.js +3 -1
  161. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  162. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -1
  163. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  164. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +14 -3
  165. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  166. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +5 -5
  167. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  168. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +4 -4
  169. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  170. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +2 -1
  171. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  172. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +9 -1
  173. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  174. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +2 -1
  175. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
  176. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +9 -1
  177. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  178. package/lib/network/reqresp/handlers/index.js +6 -6
  179. package/lib/network/reqresp/handlers/index.js.map +1 -1
  180. package/lib/network/reqresp/types.d.ts +1 -0
  181. package/lib/network/reqresp/types.d.ts.map +1 -1
  182. package/lib/network/subnets/attnetsService.d.ts +1 -1
  183. package/lib/network/subnets/attnetsService.js +6 -6
  184. package/lib/network/subnets/attnetsService.js.map +1 -1
  185. package/lib/network/subnets/util.d.ts +3 -2
  186. package/lib/network/subnets/util.d.ts.map +1 -1
  187. package/lib/network/subnets/util.js +6 -6
  188. package/lib/network/subnets/util.js.map +1 -1
  189. package/lib/node/nodejs.d.ts +2 -1
  190. package/lib/node/nodejs.d.ts.map +1 -1
  191. package/lib/node/nodejs.js +2 -1
  192. package/lib/node/nodejs.js.map +1 -1
  193. package/lib/sync/range/range.d.ts.map +1 -1
  194. package/lib/sync/range/range.js +2 -1
  195. package/lib/sync/range/range.js.map +1 -1
  196. package/lib/sync/unknownBlock.js +1 -1
  197. package/lib/sync/unknownBlock.js.map +1 -1
  198. package/lib/sync/utils/downloadByRange.d.ts +59 -15
  199. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  200. package/lib/sync/utils/downloadByRange.js +204 -83
  201. package/lib/sync/utils/downloadByRange.js.map +1 -1
  202. package/lib/sync/utils/downloadByRoot.d.ts +8 -14
  203. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  204. package/lib/sync/utils/downloadByRoot.js +18 -33
  205. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  206. package/lib/sync/utils/remoteSyncType.d.ts +2 -1
  207. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  208. package/lib/sync/utils/remoteSyncType.js +19 -4
  209. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  210. package/lib/util/blobs.d.ts +1 -1
  211. package/lib/util/blobs.d.ts.map +1 -1
  212. package/lib/util/blobs.js +53 -20
  213. package/lib/util/blobs.js.map +1 -1
  214. package/lib/util/clock.d.ts.map +1 -1
  215. package/lib/util/clock.js +3 -4
  216. package/lib/util/clock.js.map +1 -1
  217. package/lib/util/profile.d.ts +6 -4
  218. package/lib/util/profile.d.ts.map +1 -1
  219. package/lib/util/profile.js +40 -3
  220. package/lib/util/profile.js.map +1 -1
  221. package/lib/util/sszBytes.d.ts +2 -0
  222. package/lib/util/sszBytes.d.ts.map +1 -1
  223. package/lib/util/sszBytes.js +25 -0
  224. package/lib/util/sszBytes.js.map +1 -1
  225. package/package.json +32 -25
  226. package/src/api/impl/beacon/blocks/index.ts +47 -25
  227. package/src/api/impl/config/constants.ts +10 -4
  228. package/src/api/impl/lodestar/index.ts +42 -10
  229. package/src/api/impl/node/utils.ts +1 -1
  230. package/src/api/impl/validator/index.ts +5 -2
  231. package/src/chain/archiveStore/archiveStore.ts +27 -0
  232. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +32 -5
  233. package/src/chain/beaconProposerCache.ts +4 -8
  234. package/src/chain/chain.ts +50 -25
  235. package/src/chain/errors/blobSidecarError.ts +12 -2
  236. package/src/chain/errors/blockError.ts +1 -1
  237. package/src/chain/errors/dataColumnSidecarError.ts +38 -15
  238. package/src/chain/errors/voluntaryExitError.ts +30 -2
  239. package/src/chain/forkChoice/index.ts +178 -2
  240. package/src/chain/interface.ts +2 -0
  241. package/src/chain/lightClient/index.ts +26 -12
  242. package/src/chain/opPools/syncContributionAndProofPool.ts +3 -2
  243. package/src/chain/options.ts +2 -3
  244. package/src/chain/stateCache/datastore/db.ts +89 -1
  245. package/src/chain/stateCache/datastore/file.ts +8 -0
  246. package/src/chain/stateCache/datastore/types.ts +1 -0
  247. package/src/chain/stateCache/persistentCheckpointsCache.ts +45 -2
  248. package/src/chain/validation/attestation.ts +6 -7
  249. package/src/chain/validation/blobSidecar.ts +54 -10
  250. package/src/chain/validation/block.ts +2 -2
  251. package/src/chain/validation/dataColumnSidecar.ts +95 -21
  252. package/src/chain/validation/lightClientOptimisticUpdate.ts +3 -2
  253. package/src/chain/validation/voluntaryExit.ts +14 -4
  254. package/src/constants/constants.ts +0 -6
  255. package/src/constants/network.ts +0 -19
  256. package/src/index.ts +2 -0
  257. package/src/metrics/metrics/lodestar.ts +22 -1
  258. package/src/network/core/networkCore.ts +5 -1
  259. package/src/network/core/networkCoreWorker.ts +9 -9
  260. package/src/network/core/networkCoreWorkerHandler.ts +1 -1
  261. package/src/network/discv5/utils.ts +1 -2
  262. package/src/network/discv5/worker.ts +2 -7
  263. package/src/network/events.ts +1 -1
  264. package/src/network/gossip/encoding.ts +1 -1
  265. package/src/network/gossip/gossipsub.ts +8 -11
  266. package/src/network/gossip/interface.ts +2 -0
  267. package/src/network/gossip/snappy_bun.ts +2 -0
  268. package/src/network/metadata.ts +3 -1
  269. package/src/network/network.ts +1 -0
  270. package/src/network/options.ts +0 -1
  271. package/src/network/peers/discover.ts +2 -2
  272. package/src/network/processor/gossipHandlers.ts +31 -7
  273. package/src/network/processor/gossipValidatorFn.ts +33 -6
  274. package/src/network/processor/types.ts +2 -0
  275. package/src/network/reqresp/ReqRespBeaconNode.ts +3 -1
  276. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +18 -3
  277. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +6 -6
  278. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +5 -5
  279. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +13 -1
  280. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +13 -1
  281. package/src/network/reqresp/handlers/index.ts +6 -6
  282. package/src/network/reqresp/types.ts +1 -0
  283. package/src/network/subnets/attnetsService.ts +6 -6
  284. package/src/network/subnets/util.ts +12 -12
  285. package/src/node/nodejs.ts +3 -0
  286. package/src/sync/range/range.ts +2 -1
  287. package/src/sync/unknownBlock.ts +1 -1
  288. package/src/sync/utils/downloadByRange.ts +273 -108
  289. package/src/sync/utils/downloadByRoot.ts +22 -56
  290. package/src/sync/utils/remoteSyncType.ts +23 -4
  291. package/src/util/blobs.ts +64 -20
  292. package/src/util/clock.ts +3 -4
  293. package/src/util/profile.ts +45 -3
  294. package/src/util/sszBytes.ts +30 -0
@@ -1,5 +1,5 @@
1
1
  import { KZG_COMMITMENT_INCLUSION_PROOF_DEPTH, KZG_COMMITMENT_SUBTREE_INDEX0, isForkPostElectra, } from "@lodestar/params";
2
- import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSet, } from "@lodestar/state-transition";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSetByHeaderSlot, getBlockHeaderProposerSignatureSetByParentStateSlot, } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  import { toRootHex, verifyMerkleBranch } from "@lodestar/utils";
5
5
  import { kzg } from "../../util/kzg.js";
@@ -76,7 +76,12 @@ export async function validateGossipBlobSidecar(fork, chain, blobSidecar, subnet
76
76
  // descend from the finalized root.
77
77
  // (Non-Lighthouse): Since we prune all blocks non-descendant from finalized checking the `db.block` database won't be useful to guard
78
78
  // against known bad fork blocks, so we throw PARENT_UNKNOWN for cases (1) and (2)
79
- throw new BlobSidecarGossipError(GossipAction.IGNORE, { code: BlobSidecarErrorCode.PARENT_UNKNOWN, parentRoot });
79
+ throw new BlobSidecarGossipError(GossipAction.IGNORE, {
80
+ code: BlobSidecarErrorCode.PARENT_UNKNOWN,
81
+ parentRoot,
82
+ blockRoot: blockHex,
83
+ slot: blobSlot,
84
+ });
80
85
  }
81
86
  // [REJECT] The blob is from a higher slot than its parent.
82
87
  if (parentBlock.slot >= blobSlot) {
@@ -94,14 +99,22 @@ export async function validateGossipBlobSidecar(fork, chain, blobSidecar, subnet
94
99
  const blockState = await chain.regen
95
100
  .getBlockSlotState(parentRoot, blobSlot, { dontTransferCache: true }, RegenCaller.validateGossipBlock)
96
101
  .catch(() => {
97
- throw new BlobSidecarGossipError(GossipAction.IGNORE, { code: BlobSidecarErrorCode.PARENT_UNKNOWN, parentRoot });
102
+ throw new BlobSidecarGossipError(GossipAction.IGNORE, {
103
+ code: BlobSidecarErrorCode.PARENT_UNKNOWN,
104
+ parentRoot,
105
+ blockRoot: blockHex,
106
+ slot: blobSlot,
107
+ });
98
108
  });
99
109
  // [REJECT] The proposer signature, signed_beacon_block.signature, is valid with respect to the proposer_index pubkey.
100
- const signatureSet = getBlockHeaderProposerSignatureSet(blockState, blobSidecar.signedBlockHeader);
110
+ const signatureSet = getBlockHeaderProposerSignatureSetByParentStateSlot(blockState, blobSidecar.signedBlockHeader);
101
111
  // Don't batch so verification is not delayed
102
112
  if (!(await chain.bls.verifySignatureSets([signatureSet], { verifyOnMainThread: true }))) {
103
113
  throw new BlobSidecarGossipError(GossipAction.REJECT, {
104
114
  code: BlobSidecarErrorCode.PROPOSAL_SIGNATURE_INVALID,
115
+ blockRoot: blockHex,
116
+ index: blobSidecar.index,
117
+ slot: blobSlot,
105
118
  });
106
119
  }
107
120
  // verify if the blob inclusion proof is correct
@@ -144,8 +157,11 @@ export async function validateGossipBlobSidecar(fork, chain, blobSidecar, subnet
144
157
  * Validate some blob sidecars in a block
145
158
  *
146
159
  * Requires the block to be known to the node
160
+ *
161
+ * NOTE: chain is optional to skip signature verification. Helpful for testing purposes and so that can control whether
162
+ * signature gets checked depending on the reqresp method that is being checked
147
163
  */
148
- export async function validateBlockBlobSidecars(blockSlot, blockRoot, blockBlobCount, blobSidecars) {
164
+ export async function validateBlockBlobSidecars(chain, blockSlot, blockRoot, blockBlobCount, blobSidecars) {
149
165
  if (blobSidecars.length === 0) {
150
166
  return;
151
167
  }
@@ -158,7 +174,8 @@ export async function validateBlockBlobSidecars(blockSlot, blockRoot, blockBlobC
158
174
  });
159
175
  }
160
176
  // Hash the first sidecar block header and compare the rest via (cheaper) equality
161
- const firstSidecarBlockHeader = blobSidecars[0].signedBlockHeader.message;
177
+ const firstSidecarSignedBlockHeader = blobSidecars[0].signedBlockHeader;
178
+ const firstSidecarBlockHeader = firstSidecarSignedBlockHeader.message;
162
179
  const firstBlockRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(firstSidecarBlockHeader);
163
180
  if (Buffer.compare(blockRoot, firstBlockRoot) !== 0) {
164
181
  throw new BlobSidecarValidationError({
@@ -169,16 +186,34 @@ export async function validateBlockBlobSidecars(blockSlot, blockRoot, blockBlobC
169
186
  actual: toRootHex(firstBlockRoot),
170
187
  }, "BlobSidecar doesn't match corresponding block");
171
188
  }
189
+ if (chain !== null) {
190
+ const headState = await chain.getHeadState();
191
+ const signatureSet = getBlockHeaderProposerSignatureSetByHeaderSlot(headState, firstSidecarSignedBlockHeader);
192
+ if (!(await chain.bls.verifySignatureSets([signatureSet], {
193
+ batchable: true,
194
+ priority: true,
195
+ verifyOnMainThread: false,
196
+ }))) {
197
+ throw new BlobSidecarValidationError({
198
+ code: BlobSidecarErrorCode.PROPOSAL_SIGNATURE_INVALID,
199
+ blockRoot: toRootHex(blockRoot),
200
+ slot: blockSlot,
201
+ index: blobSidecars[0].index,
202
+ });
203
+ }
204
+ }
172
205
  const commitments = [];
173
206
  const blobs = [];
174
207
  const proofs = [];
175
- for (const blobSidecar of blobSidecars) {
176
- const blobIdx = blobSidecar.index;
177
- if (!ssz.phase0.BeaconBlockHeader.equals(blobSidecar.signedBlockHeader.message, firstSidecarBlockHeader)) {
208
+ for (let i = 0; i < blobSidecars.length; i++) {
209
+ const blobSidecar = blobSidecars[i];
210
+ const blobIndex = blobSidecar.index;
211
+ if (i !== 0 &&
212
+ !ssz.phase0.SignedBeaconBlockHeader.equals(blobSidecar.signedBlockHeader, firstSidecarSignedBlockHeader)) {
178
213
  throw new BlobSidecarValidationError({
179
214
  code: BlobSidecarErrorCode.INCORRECT_BLOCK,
180
215
  slot: blockSlot,
181
- blobIdx,
216
+ blobIdx: blobIndex,
182
217
  expected: toRootHex(blockRoot),
183
218
  actual: "unknown - compared via equality",
184
219
  }, "BlobSidecar doesn't match corresponding block");
@@ -187,7 +222,7 @@ export async function validateBlockBlobSidecars(blockSlot, blockRoot, blockBlobC
187
222
  throw new BlobSidecarValidationError({
188
223
  code: BlobSidecarErrorCode.INCLUSION_PROOF_INVALID,
189
224
  slot: blockSlot,
190
- blobIdx,
225
+ blobIdx: blobIndex,
191
226
  }, "BlobSidecar inclusion proof invalid");
192
227
  }
193
228
  commitments.push(blobSidecar.kzgCommitment);
@@ -1 +1 @@
1
- {"version":3,"file":"blobSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/blobSidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/blobSidecar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AAU3D,OAAO,EAAC,iBAAiB,EAAQ,MAAM,iBAAiB,CAAC;AAIzD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAoKf"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AAU3D,OAAO,EAAC,iBAAiB,EAAQ,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAqKf"}
@@ -1,7 +1,6 @@
1
1
  import { ForkName, isForkPostDeneb } from "@lodestar/params";
2
2
  import { computeEpochAtSlot, computeStartSlotAtEpoch, computeTimeAtSlot, getBlockProposerSignatureSet, isExecutionBlockBodyType, isExecutionEnabled, isExecutionStateType, } from "@lodestar/state-transition";
3
3
  import { sleep, toRootHex } from "@lodestar/utils";
4
- import { MAXIMUM_GOSSIP_CLOCK_DISPARITY } from "../../constants/index.js";
5
4
  import { BlockErrorCode, BlockGossipError, GossipAction } from "../errors/index.js";
6
5
  import { RegenCaller } from "../regen/index.js";
7
6
  export async function validateGossipBlock(config, chain, signedBlock, fork) {
@@ -131,6 +130,7 @@ export async function validateGossipBlock(config, chain, signedBlock, fork) {
131
130
  if (!(await chain.bls.verifySignatureSets([signatureSet], { verifyOnMainThread: true }))) {
132
131
  throw new BlockGossipError(GossipAction.REJECT, {
133
132
  code: BlockErrorCode.PROPOSAL_SIGNATURE_INVALID,
133
+ blockSlot,
134
134
  });
135
135
  }
136
136
  // [REJECT] The block is proposed by the expected proposer_index for the block's slot in the context of the current
@@ -148,7 +148,7 @@ export async function validateGossipBlock(config, chain, signedBlock, fork) {
148
148
  // gossip validation promise without any extra infrastructure.
149
149
  // Do the sleep at the end, since regen and signature validation can already take longer than `msToBlockSlot`.
150
150
  const msToBlockSlot = computeTimeAtSlot(config, blockSlot, chain.genesisTime) * 1000 - Date.now();
151
- if (msToBlockSlot <= MAXIMUM_GOSSIP_CLOCK_DISPARITY && msToBlockSlot > 0) {
151
+ if (msToBlockSlot <= config.MAXIMUM_GOSSIP_CLOCK_DISPARITY && msToBlockSlot > 0) {
152
152
  // If block is between 0 and 500 ms early, hold it in a promise. Equivalent to a pending queue.
153
153
  await sleep(msToBlockSlot);
154
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/chain/validation/block.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,11 @@ export declare function verifyDataColumnSidecarInclusionProof(dataColumnSidecar:
17
17
  * Validate a subset of data column sidecars in a block
18
18
  *
19
19
  * Requires the block to be known to the node
20
+ *
21
+ * NOTE: chain is optional to skip signature verification. Helpful for testing purposes and so that can control whether
22
+ * signature gets checked depending on the reqresp method that is being checked
20
23
  */
21
- export declare function validateBlockDataColumnSidecars(blockSlot: Slot, blockRoot: Root, blockBlobCount: number, dataColumnSidecars: fulu.DataColumnSidecars): Promise<void>;
24
+ export declare function validateBlockDataColumnSidecars(chain: IBeaconChain | null, blockSlot: Slot, blockRoot: Root, blockBlobCount: number, dataColumnSidecars: fulu.DataColumnSidecars): Promise<void>;
22
25
  /**
23
26
  * SPEC FUNCTION
24
27
  * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#compute_subnet_for_data_column_sidecar
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecar.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAO7C,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,CAyJf;AAoCD;;;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;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA2Gf;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,CAmKf;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,CAqJf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,IAAI,CAAC,iBAAiB,GACpC,QAAQ,CAEV"}
@@ -1,5 +1,5 @@
1
1
  import { KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH, KZG_COMMITMENTS_SUBTREE_INDEX, NUMBER_OF_COLUMNS, } from "@lodestar/params";
2
- import { computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSet } from "@lodestar/state-transition";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSetByHeaderSlot, getBlockHeaderProposerSignatureSetByParentStateSlot, } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  import { toRootHex, verifyMerkleBranch } from "@lodestar/utils";
5
5
  import { kzg } from "../../util/kzg.js";
@@ -11,12 +11,12 @@ import { RegenCaller } from "../regen/interface.js";
11
11
  export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar, gossipSubnet, metrics) {
12
12
  const blockHeader = dataColumnSidecar.signedBlockHeader.message;
13
13
  // 1) [REJECT] The sidecar is valid as verified by verify_data_column_sidecar
14
- verifyDataColumnSidecar(dataColumnSidecar);
14
+ verifyDataColumnSidecar(chain.config, dataColumnSidecar);
15
15
  // 2) [REJECT] The sidecar is for the correct subnet -- i.e. compute_subnet_for_data_column_sidecar(sidecar.index) == subnet_id
16
16
  if (computeSubnetForDataColumnSidecar(chain.config, dataColumnSidecar) !== gossipSubnet) {
17
17
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
18
18
  code: DataColumnSidecarErrorCode.INVALID_SUBNET,
19
- columnIdx: dataColumnSidecar.index,
19
+ columnIndex: dataColumnSidecar.index,
20
20
  gossipSubnet: gossipSubnet,
21
21
  });
22
22
  }
@@ -60,6 +60,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
60
60
  throw new DataColumnSidecarGossipError(GossipAction.IGNORE, {
61
61
  code: DataColumnSidecarErrorCode.PARENT_UNKNOWN,
62
62
  parentRoot,
63
+ slot: blockHeader.slot,
63
64
  });
64
65
  }
65
66
  // 8) [REJECT] The sidecar is from a higher slot than the sidecar's block's parent
@@ -80,6 +81,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
80
81
  throw new DataColumnSidecarGossipError(GossipAction.IGNORE, {
81
82
  code: DataColumnSidecarErrorCode.PARENT_UNKNOWN,
82
83
  parentRoot,
84
+ slot: blockHeader.slot,
83
85
  });
84
86
  });
85
87
  // 13) [REJECT] The sidecar is proposed by the expected proposer_index for the block's slot in the context of the current
@@ -97,13 +99,18 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
97
99
  });
98
100
  }
99
101
  // 5) [REJECT] The proposer signature of sidecar.signed_block_header, is valid with respect to the block_header.proposer_index pubkey.
100
- const signatureSet = getBlockHeaderProposerSignatureSet(blockState, dataColumnSidecar.signedBlockHeader);
102
+ const signatureSet = getBlockHeaderProposerSignatureSetByParentStateSlot(blockState, dataColumnSidecar.signedBlockHeader);
101
103
  // Don't batch so verification is not delayed
102
104
  if (!(await chain.bls.verifySignatureSets([signatureSet], {
103
105
  verifyOnMainThread: blockHeader.slot > chain.forkChoice.getHead().slot,
104
106
  }))) {
107
+ const blockRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(dataColumnSidecar.signedBlockHeader.message);
108
+ const blockRootHex = toRootHex(blockRoot);
105
109
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
106
110
  code: DataColumnSidecarErrorCode.PROPOSAL_SIGNATURE_INVALID,
111
+ blockRoot: blockRootHex,
112
+ index: dataColumnSidecar.index,
113
+ slot: blockHeader.slot,
107
114
  });
108
115
  }
109
116
  // 9) [REJECT] The current finalized_checkpoint is an ancestor of the sidecar's block
@@ -120,7 +127,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
120
127
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
121
128
  code: DataColumnSidecarErrorCode.INCLUSION_PROOF_INVALID,
122
129
  slot: dataColumnSidecar.signedBlockHeader.message.slot,
123
- columnIdx: dataColumnSidecar.index,
130
+ columnIndex: dataColumnSidecar.index,
124
131
  });
125
132
  }
126
133
  const kzgProofTimer = metrics?.peerDas.dataColumnSidecarKzgProofsVerificationTime.startTimer();
@@ -132,7 +139,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
132
139
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
133
140
  code: DataColumnSidecarErrorCode.INVALID_KZG_PROOF,
134
141
  slot: blockHeader.slot,
135
- columnIdx: dataColumnSidecar.index,
142
+ columnIndex: dataColumnSidecar.index,
136
143
  });
137
144
  }
138
145
  finally {
@@ -146,19 +153,30 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
146
153
  * SPEC FUNCTION
147
154
  * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#verify_data_column_sidecar
148
155
  */
149
- function verifyDataColumnSidecar(dataColumnSidecar) {
156
+ function verifyDataColumnSidecar(config, dataColumnSidecar) {
150
157
  if (dataColumnSidecar.index >= NUMBER_OF_COLUMNS) {
151
158
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
152
159
  code: DataColumnSidecarErrorCode.INVALID_INDEX,
153
160
  slot: dataColumnSidecar.signedBlockHeader.message.slot,
154
- columnIdx: dataColumnSidecar.index,
161
+ columnIndex: dataColumnSidecar.index,
155
162
  });
156
163
  }
157
164
  if (dataColumnSidecar.kzgCommitments.length === 0) {
158
165
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
159
166
  code: DataColumnSidecarErrorCode.NO_COMMITMENTS,
160
167
  slot: dataColumnSidecar.signedBlockHeader.message.slot,
161
- columnIdx: dataColumnSidecar.index,
168
+ columnIndex: dataColumnSidecar.index,
169
+ });
170
+ }
171
+ const epoch = computeEpochAtSlot(dataColumnSidecar.signedBlockHeader.message.slot);
172
+ const maxBlobsPerBlock = config.getMaxBlobsPerBlock(epoch);
173
+ if (dataColumnSidecar.kzgCommitments.length > maxBlobsPerBlock) {
174
+ throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
175
+ code: DataColumnSidecarErrorCode.TOO_MANY_KZG_COMMITMENTS,
176
+ slot: dataColumnSidecar.signedBlockHeader.message.slot,
177
+ columnIndex: dataColumnSidecar.index,
178
+ count: dataColumnSidecar.kzgCommitments.length,
179
+ limit: maxBlobsPerBlock,
162
180
  });
163
181
  }
164
182
  if (dataColumnSidecar.column.length !== dataColumnSidecar.kzgCommitments.length ||
@@ -199,8 +217,11 @@ export function verifyDataColumnSidecarInclusionProof(dataColumnSidecar) {
199
217
  * Validate a subset of data column sidecars in a block
200
218
  *
201
219
  * Requires the block to be known to the node
220
+ *
221
+ * NOTE: chain is optional to skip signature verification. Helpful for testing purposes and so that can control whether
222
+ * signature gets checked depending on the reqresp method that is being checked
202
223
  */
203
- export async function validateBlockDataColumnSidecars(blockSlot, blockRoot, blockBlobCount, dataColumnSidecars) {
224
+ export async function validateBlockDataColumnSidecars(chain, blockSlot, blockRoot, blockBlobCount, dataColumnSidecars) {
204
225
  if (dataColumnSidecars.length === 0) {
205
226
  return;
206
227
  }
@@ -213,45 +234,80 @@ export async function validateBlockDataColumnSidecars(blockSlot, blockRoot, bloc
213
234
  }, "Block has no blob commitments but data column sidecars were provided");
214
235
  }
215
236
  // Hash the first sidecar block header and compare the rest via (cheaper) equality
216
- const firstSidecarBlockHeader = dataColumnSidecars[0].signedBlockHeader.message;
237
+ const firstSidecarSignedBlockHeader = dataColumnSidecars[0].signedBlockHeader;
238
+ const firstSidecarBlockHeader = firstSidecarSignedBlockHeader.message;
217
239
  const firstBlockRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(firstSidecarBlockHeader);
218
240
  if (Buffer.compare(blockRoot, firstBlockRoot) !== 0) {
219
241
  throw new DataColumnSidecarValidationError({
220
242
  code: DataColumnSidecarErrorCode.INCORRECT_BLOCK,
221
243
  slot: blockSlot,
222
- columnIdx: 0,
244
+ columnIndex: 0,
223
245
  expected: toRootHex(blockRoot),
224
246
  actual: toRootHex(firstBlockRoot),
225
247
  }, "DataColumnSidecar doesn't match corresponding block");
226
248
  }
249
+ if (chain !== null) {
250
+ const headState = await chain.getHeadState();
251
+ const signatureSet = getBlockHeaderProposerSignatureSetByHeaderSlot(headState, firstSidecarSignedBlockHeader);
252
+ if (!(await chain.bls.verifySignatureSets([signatureSet], {
253
+ batchable: true,
254
+ priority: true,
255
+ verifyOnMainThread: false,
256
+ }))) {
257
+ throw new DataColumnSidecarValidationError({
258
+ code: DataColumnSidecarErrorCode.PROPOSAL_SIGNATURE_INVALID,
259
+ blockRoot: toRootHex(blockRoot),
260
+ slot: blockSlot,
261
+ index: dataColumnSidecars[0].index,
262
+ });
263
+ }
264
+ }
227
265
  const commitments = [];
228
266
  const cellIndices = [];
229
267
  const cells = [];
230
268
  const proofs = [];
231
269
  for (let i = 0; i < dataColumnSidecars.length; i++) {
232
270
  const columnSidecar = dataColumnSidecars[i];
271
+ if (i !== 0 &&
272
+ !ssz.phase0.SignedBeaconBlockHeader.equals(firstSidecarSignedBlockHeader, columnSidecar.signedBlockHeader)) {
273
+ throw new DataColumnSidecarValidationError({
274
+ code: DataColumnSidecarErrorCode.INCORRECT_HEADER_ROOT,
275
+ slot: blockSlot,
276
+ expected: toRootHex(blockRoot),
277
+ actual: toRootHex(ssz.phase0.BeaconBlockHeader.hashTreeRoot(columnSidecar.signedBlockHeader.message)),
278
+ });
279
+ }
233
280
  if (columnSidecar.index >= NUMBER_OF_COLUMNS) {
234
281
  throw new DataColumnSidecarValidationError({
235
282
  code: DataColumnSidecarErrorCode.INVALID_INDEX,
236
283
  slot: blockSlot,
237
- columnIdx: columnSidecar.index,
284
+ columnIndex: columnSidecar.index,
238
285
  }, "DataColumnSidecar has invalid index");
239
286
  }
240
- if (columnSidecar.kzgCommitments.length !== blockBlobCount) {
287
+ if (columnSidecar.column.length !== blockBlobCount) {
241
288
  throw new DataColumnSidecarValidationError({
242
- code: DataColumnSidecarErrorCode.INCORRECT_KZG_COMMITMENTS_COUNT,
289
+ code: DataColumnSidecarErrorCode.INCORRECT_CELL_COUNT,
243
290
  slot: blockSlot,
244
- columnIdx: columnSidecar.index,
291
+ columnIndex: columnSidecar.index,
245
292
  expected: blockBlobCount,
293
+ actual: columnSidecar.column.length,
294
+ });
295
+ }
296
+ if (columnSidecar.column.length !== columnSidecar.kzgCommitments.length) {
297
+ throw new DataColumnSidecarValidationError({
298
+ code: DataColumnSidecarErrorCode.INCORRECT_KZG_COMMITMENTS_COUNT,
299
+ slot: blockSlot,
300
+ columnIndex: columnSidecar.index,
301
+ expected: columnSidecar.column.length,
246
302
  actual: columnSidecar.kzgCommitments.length,
247
303
  });
248
304
  }
249
- if (columnSidecar.kzgProofs.length !== columnSidecar.kzgCommitments.length) {
305
+ if (columnSidecar.column.length !== columnSidecar.kzgProofs.length) {
250
306
  throw new DataColumnSidecarValidationError({
251
307
  code: DataColumnSidecarErrorCode.INCORRECT_KZG_PROOF_COUNT,
252
308
  slot: blockSlot,
253
- columnIdx: columnSidecar.index,
254
- expected: columnSidecar.kzgCommitments.length,
309
+ columnIndex: columnSidecar.index,
310
+ expected: columnSidecar.column.length,
255
311
  actual: columnSidecar.kzgProofs.length,
256
312
  });
257
313
  }
@@ -259,7 +315,7 @@ export async function validateBlockDataColumnSidecars(blockSlot, blockRoot, bloc
259
315
  throw new DataColumnSidecarValidationError({
260
316
  code: DataColumnSidecarErrorCode.INCLUSION_PROOF_INVALID,
261
317
  slot: blockSlot,
262
- columnIdx: columnSidecar.index,
318
+ columnIndex: columnSidecar.index,
263
319
  }, "DataColumnSidecar has invalid inclusion proof");
264
320
  }
265
321
  commitments.push(...columnSidecar.kzgCommitments);
@@ -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":"AACA,OAAO,EACL,qCAAqC,EACrC,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,8CAA8C,EAC9C,mDAAmD,GACpD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAA6B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,gBAAgB;AAChB,4HAA4H;AAC5H,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAAmB,EACnB,iBAAyC,EACzC,YAAsB,EACtB,OAAuB;IAEvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAEhE,6EAA6E;IAC7E,uBAAuB,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAEzD,+HAA+H;IAC/H,IAAI,iCAAiC,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,YAAY,EAAE,CAAC;QACxF,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,cAAc;YAC/C,WAAW,EAAE,iBAAiB,CAAC,KAAK;YACpC,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,sGAAsG;IACtG,mGAAmG;IACnG,uDAAuD;IACvD,MAAM,8BAA8B,GAAG,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClF,IAAI,8BAA8B,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,WAAW;YAC5C,WAAW,EAAE,8BAA8B;YAC3C,SAAS,EAAE,WAAW,CAAC,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,sGAAsG;IACtG,2FAA2F;IAC3F,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;IACtE,MAAM,aAAa,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,2BAA2B;YAC5D,SAAS,EAAE,WAAW,CAAC,IAAI;YAC3B,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,2GAA2G;IAC3G,qCAAqC;IACrC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,2FAA2F;QAC3F,iCAAiC;QACjC,EAAE;QACF,sFAAsF;QACtF,mFAAmF;QACnF,wDAAwD;QACxD,0FAA0F;QAC1F,sCAAsC;QACtC,sIAAsI;QACtI,kFAAkF;QAClF,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,cAAc;YAC/C,UAAU;YACV,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,qBAAqB;YACtD,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,0GAA0G;IAC1G,8FAA8F;IAC9F,+FAA+F;IAC/F,8DAA8D;IAC9D,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,KAAK;SACjC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAC,EAAE,WAAW,CAAC,wBAAwB,CAAC;SAChH,KAAK,CAAC,GAAG,EAAE;QACV,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,cAAc;YAC/C,UAAU;YACV,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,yHAAyH;IACzH,+GAA+G;IAC/G,sHAAsH;IACtH,qHAAqH;IACrH,6BAA6B;IAC7B,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,MAAM,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtF,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;QAC5C,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,kBAAkB;YACnD,mBAAmB,EAAE,aAAa;YAClC,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC;IAED,sIAAsI;IACtI,MAAM,YAAY,GAAG,mDAAmD,CACtE,UAAU,EACV,iBAAiB,CAAC,iBAAiB,CACpC,CAAC;IACF,6CAA6C;IAC7C,IACE,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE;QACpD,kBAAkB,EAAE,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI;KACvE,CAAC,CAAC,EACH,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzG,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,0BAA0B;YAC3D,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,qFAAqF;IACrF,8GAA8G;IAC9G,yDAAyD;IACzD,gBAAgB;IAEhB,2FAA2F;IAC3F,0DAA0D;IAC1D,oFAAoF;IACpF,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,+CAA+C,CAAC,UAAU,EAAE,CAAC;IAC5F,MAAM,KAAK,GAAG,qCAAqC,CAAC,iBAAiB,CAAC,CAAC;IACvE,KAAK,EAAE,EAAE,CAAC;IAEV,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,uBAAuB;YACxD,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI;YACtD,WAAW,EAAE,iBAAiB,CAAC,KAAK;SACrC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,CAAC,0CAA0C,CAAC,UAAU,EAAE,CAAC;IAC/F,uGAAuG;IACvG,IAAI,CAAC;QACH,MAAM,gCAAgC,CACpC,iBAAiB,CAAC,cAAc,EAChC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACpF,iBAAiB,CAAC,MAAM,EACxB,iBAAiB,CAAC,SAAS,CAC5B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,iBAAiB;YAClD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,WAAW,EAAE,iBAAiB,CAAC,KAAK;SACrC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,aAAa,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,+GAA+G;IAC/G,kGAAkG;IAClG,kDAAkD;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAuB,EAAE,iBAAyC;IACjG,IAAI,iBAAiB,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACjD,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,aAAa;YAC9C,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI;YACtD,WAAW,EAAE,iBAAiB,CAAC,KAAK;SACrC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,cAAc;YAC/C,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI;YACtD,WAAW,EAAE,iBAAiB,CAAC,KAAK;SACrC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE3D,IAAI,iBAAiB,CAAC,cAAc,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC/D,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,wBAAwB;YACzD,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI;YACtD,WAAW,EAAE,iBAAiB,CAAC,KAAK;YACpC,KAAK,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM;YAC9C,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IACE,iBAAiB,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB,CAAC,cAAc,CAAC,MAAM;QAC3E,iBAAiB,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB,CAAC,SAAS,CAAC,MAAM,EACtE,CAAC;QACD,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,MAAM,EAAE;YAC1D,IAAI,EAAE,0BAA0B,CAAC,kBAAkB;YACnD,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM;YAC7C,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM;YAC1D,YAAY,EAAE,iBAAiB,CAAC,SAAS,CAAC,MAAM;SACjD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,WAAyB,EACzB,WAAqB,EACrB,KAAmB,EACnB,MAAoB;IAEpB,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,GAAG,CAAC,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACV,CAAW,CAAC,OAAO,GAAG,0CAA2C,CAAW,CAAC,OAAO,EAAE,CAAC;QACxF,MAAM,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAAC,iBAAyC;IAC7F,OAAO,kBAAkB,CACvB,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAC3E,iBAAiB,CAAC,4BAA4B,EAC9C,qCAAqC,EACrC,6BAA6B,EAC7B,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAA0B,EAC1B,SAAe,EACf,SAAe,EACf,cAAsB,EACtB,kBAA2C;IAE3C,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAgC,CACxC;YACE,IAAI,EAAE,0BAA0B,CAAC,uBAAuB;YACxD,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,EACD,sEAAsE,CACvE,CAAC;IACJ,CAAC;IACD,kFAAkF;IAClF,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9E,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,OAAO,CAAC;IACtE,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,gCAAgC,CACxC;YACE,IAAI,EAAE,0BAA0B,CAAC,eAAe;YAChD,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC;YAC9B,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC;SAClC,EACD,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,8CAA8C,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;QAE9G,IACE,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE;YACpD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC,EACH,CAAC;YACD,MAAM,IAAI,gCAAgC,CAAC;gBACzC,IAAI,EAAE,0BAA0B,CAAC,0BAA0B;gBAC3D,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;gBAC/B,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE5C,IACE,CAAC,KAAK,CAAC;YACP,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,6BAA6B,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC1G,CAAC;YACD,MAAM,IAAI,gCAAgC,CAAC;gBACzC,IAAI,EAAE,0BAA0B,CAAC,qBAAqB;gBACtD,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC;gBAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACtG,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC;YAC7C,MAAM,IAAI,gCAAgC,CACxC;gBACE,IAAI,EAAE,0BAA0B,CAAC,aAAa;gBAC9C,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,aAAa,CAAC,KAAK;aACjC,EACD,qCAAqC,CACtC,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACnD,MAAM,IAAI,gCAAgC,CAAC;gBACzC,IAAI,EAAE,0BAA0B,CAAC,oBAAoB;gBACrD,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,aAAa,CAAC,KAAK;gBAChC,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;aACpC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,IAAI,gCAAgC,CAAC;gBACzC,IAAI,EAAE,0BAA0B,CAAC,+BAA+B;gBAChE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,aAAa,CAAC,KAAK;gBAChC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;gBACrC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,IAAI,gCAAgC,CAAC;gBACzC,IAAI,EAAE,0BAA0B,CAAC,yBAAyB;gBAC1D,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,aAAa,CAAC,KAAK;gBAChC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;gBACrC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM;aACvC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,qCAAqC,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,gCAAgC,CACxC;gBACE,IAAI,EAAE,0BAA0B,CAAC,uBAAuB;gBACxD,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,aAAa,CAAC,KAAK;aACjC,EACD,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAClG,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,4BAA4B,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,yBAAyB,CAAC;QACrC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAI,CAAW,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAgC,CACxC;YACE,IAAI,EAAE,0BAA0B,CAAC,uBAAuB;YACxD,IAAI,EAAE,SAAS;YACf,MAAM;SACP,EACD,+CAA+C,CAChD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAmB,EACnB,aAAqC;IAErC,OAAO,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,gCAAgC,CAAC;AACvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lightClientOptimisticUpdate.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,2BAA2B,GACpD,IAAI,CAgCN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,eAAe,CAAC,GACzD,OAAO,CAGT"}
1
+ {"version":3,"file":"lightClientOptimisticUpdate.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,YAAY,EACnB,wBAAwB,EAAE,2BAA2B,GACpD,IAAI,CAgCN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,IAAI,CAAC,2BAA2B,EAAE,eAAe,CAAC,GACzD,OAAO,CAKT"}
@@ -1,4 +1,3 @@
1
- import { MAXIMUM_GOSSIP_CLOCK_DISPARITY } from "../../constants/index.js";
2
1
  import { assertLightClientServer } from "../../node/utils/lightclient.js";
3
2
  import { GossipAction } from "../errors/index.js";
4
3
  import { LightClientError, LightClientErrorCode } from "../errors/lightClientError.js";
@@ -44,6 +43,6 @@ export function validateLightClientOptimisticUpdate(config, chain, gossipedOptim
44
43
  */
45
44
  export function updateReceivedTooEarly(config, clock, update) {
46
45
  const fork = config.getForkName(update.signatureSlot);
47
- return clock.msFromSlot(update.signatureSlot) < config.getSyncMessageDueMs(fork) - MAXIMUM_GOSSIP_CLOCK_DISPARITY;
46
+ return (clock.msFromSlot(update.signatureSlot) < config.getSyncMessageDueMs(fork) - config.MAXIMUM_GOSSIP_CLOCK_DISPARITY);
48
47
  }
49
48
  //# sourceMappingURL=lightClientOptimisticUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../../src/chain/validation/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,8BAA8B,EAAC,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAC,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAGrF,iIAAiI;AACjI,MAAM,UAAU,mCAAmC,CACjD,MAAuB,EACvB,KAAmB,EACnB,wBAAqD;IAErD,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,sHAAsH;IACtH,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;IACjF,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IAE5E,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,qBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtG,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,mCAAmC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,kHAAkH;IAClH,6EAA6E;IAC7E,uEAAuE;IACvE,kDAAkD;IAClD,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,wBAAwB,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,oCAAoC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,mFAAmF;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAC3C,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACpD,CAAC,2BAA2B,CAAC;IAC9B,IAAI,qBAAqB,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,oCAAoC;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAuB,EACvB,KAAa,EACb,MAA0D;IAE1D,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC;AACpH,CAAC"}
1
+ {"version":3,"file":"lightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../../src/chain/validation/lightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAGrF,iIAAiI;AACjI,MAAM,UAAU,mCAAmC,CACjD,MAAuB,EACvB,KAAmB,EACnB,wBAAqD;IAErD,uBAAuB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEjD,sHAAsH;IACtH,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;IACjF,MAAM,qBAAqB,GAAG,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IAE5E,IAAI,qBAAqB,IAAI,oBAAoB,IAAI,qBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtG,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,mCAAmC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,kHAAkH;IAClH,6EAA6E;IAC7E,uEAAuE;IACvE,kDAAkD;IAClD,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,wBAAwB,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,oCAAoC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,mFAAmF;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAC3C,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACpD,CAAC,2BAA2B,CAAC;IAC9B,IAAI,qBAAqB,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE;YAC9C,IAAI,EAAE,oBAAoB,CAAC,oCAAoC;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAuB,EACvB,KAAa,EACb,MAA0D;IAE1D,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,OAAO,CACL,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,8BAA8B,CAClH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"voluntaryExit.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/voluntaryExit.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,MAAM,CAAC,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,MAAM,CAAC,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"voluntaryExit.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/voluntaryExit.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAOvC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,MAAM,CAAC,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,MAAM,CAAC,mBAAmB,GACxC,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,5 +1,5 @@
1
- import { getVoluntaryExitSignatureSet, isValidVoluntaryExit } from "@lodestar/state-transition";
2
- import { GossipAction, VoluntaryExitError, VoluntaryExitErrorCode } from "../errors/index.js";
1
+ import { VoluntaryExitValidity, getVoluntaryExitSignatureSet, getVoluntaryExitValidity, } from "@lodestar/state-transition";
2
+ import { GossipAction, VoluntaryExitError, VoluntaryExitErrorCode, voluntaryExitValidityToErrorCode, } from "../errors/index.js";
3
3
  import { RegenCaller } from "../regen/index.js";
4
4
  export async function validateApiVoluntaryExit(chain, voluntaryExit) {
5
5
  const prioritizeBls = true;
@@ -26,9 +26,10 @@ async function validateVoluntaryExit(chain, voluntaryExit, prioritizeBls = false
26
26
  const state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.validateGossipVoluntaryExit);
27
27
  // [REJECT] All of the conditions within process_voluntary_exit pass validation.
28
28
  // verifySignature = false, verified in batch below
29
- if (!isValidVoluntaryExit(chain.config.getForkSeq(state.slot), state, voluntaryExit, false)) {
29
+ const validity = getVoluntaryExitValidity(chain.config.getForkSeq(state.slot), state, voluntaryExit, false);
30
+ if (validity !== VoluntaryExitValidity.valid) {
30
31
  throw new VoluntaryExitError(GossipAction.REJECT, {
31
- code: VoluntaryExitErrorCode.INVALID,
32
+ code: voluntaryExitValidityToErrorCode(validity),
32
33
  });
33
34
  }
34
35
  const signatureSet = getVoluntaryExitSignatureSet(state, voluntaryExit);
@@ -1 +1 @@
1
- {"version":3,"file":"voluntaryExit.js","sourceRoot":"","sources":["../../../src/chain/validation/voluntaryExit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAE,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAmB,EACnB,aAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAmB,EACnB,aAAyC;IAEzC,OAAO,qBAAqB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAmB,EACnB,aAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,sGAAsG;IACtG,iDAAiD;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,sBAAsB,CAAC,cAAc;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,EAAE;IACF,gFAAgF;IAChF,6DAA6D;IAC7D,sGAAsG;IACtG,kGAAkG;IAClG,6CAA6C;IAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE9F,gFAAgF;IAChF,mDAAmD;IACnD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,sBAAsB,CAAC,OAAO;SACrC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,sBAAsB,CAAC,iBAAiB;SAC/C,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"voluntaryExit.js","sourceRoot":"","sources":["../../../src/chain/validation/voluntaryExit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAmB,EACnB,aAAyC;IAEzC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAmB,EACnB,aAAyC;IAEzC,OAAO,qBAAqB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAmB,EACnB,aAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,sGAAsG;IACtG,iDAAiD;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,sBAAsB,CAAC,cAAc;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,EAAE;IACF,gFAAgF;IAChF,6DAA6D;IAC7D,sGAAsG;IACtG,kGAAkG;IAClG,6CAA6C;IAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE9F,gFAAgF;IAChF,mDAAmD;IACnD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAC5G,IAAI,QAAQ,KAAK,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,gCAAgC,CAAC,QAAQ,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACvG,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,sBAAsB,CAAC,iBAAiB;SAC/C,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -7,9 +7,4 @@ export declare const ZERO_HASH: Buffer<ArrayBuffer>;
7
7
  export declare const ZERO_HASH_HEX: string;
8
8
  export declare const EMPTY_SIGNATURE: Buffer<ArrayBuffer>;
9
9
  export declare const GRAFFITI_SIZE = 32;
10
- /**
11
- * The maximum milliseconds of clock disparity assumed between honest nodes.
12
- */
13
- export declare const MAXIMUM_GOSSIP_CLOCK_DISPARITY = 500;
14
- export declare const MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC: number;
15
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,QAAW,CAAC;AACzC,eAAO,MAAM,SAAS,qBAAsB,CAAC;AAC7C,eAAO,MAAM,aAAa,QAAyB,CAAC;AACpD,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,kCAAkC,QAAwC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,QAAW,CAAC;AACzC,eAAO,MAAM,SAAS,qBAAsB,CAAC;AAC7C,eAAO,MAAM,aAAa,QAAyB,CAAC;AACpD,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,aAAa,KAAK,CAAC"}
@@ -7,9 +7,4 @@ export const ZERO_HASH = Buffer.alloc(32, 0);
7
7
  export const ZERO_HASH_HEX = "0x" + "00".repeat(32);
8
8
  export const EMPTY_SIGNATURE = Buffer.alloc(96, 0);
9
9
  export const GRAFFITI_SIZE = 32;
10
- /**
11
- * The maximum milliseconds of clock disparity assumed between honest nodes.
12
- */
13
- export const MAXIMUM_GOSSIP_CLOCK_DISPARITY = 500;
14
- export const MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC = MAXIMUM_GOSSIP_CLOCK_DISPARITY / 1000;
15
10
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,MAAM,CAAC,MAAM,kCAAkC,GAAG,8BAA8B,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC"}