@lodestar/beacon-node 1.22.0-dev.64fe1db806 → 1.22.0-dev.6c1e335a57

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 (200) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +22 -10
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +31 -4
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/config/constants.d.ts +5 -1
  6. package/lib/api/impl/config/constants.js +7 -2
  7. package/lib/api/impl/config/constants.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.js +2 -2
  9. package/lib/api/impl/lodestar/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.js +37 -14
  11. package/lib/api/impl/validator/index.js.map +1 -1
  12. package/lib/chain/archiver/archiveBlocks.js +3 -3
  13. package/lib/chain/archiver/archiveBlocks.js.map +1 -1
  14. package/lib/chain/archiver/archiveStates.d.ts +3 -1
  15. package/lib/chain/archiver/archiveStates.js +6 -3
  16. package/lib/chain/archiver/archiveStates.js.map +1 -1
  17. package/lib/chain/archiver/index.js +1 -1
  18. package/lib/chain/archiver/index.js.map +1 -1
  19. package/lib/chain/balancesCache.js +2 -2
  20. package/lib/chain/balancesCache.js.map +1 -1
  21. package/lib/chain/blocks/importBlock.js +8 -6
  22. package/lib/chain/blocks/importBlock.js.map +1 -1
  23. package/lib/chain/blocks/index.js +2 -2
  24. package/lib/chain/blocks/index.js.map +1 -1
  25. package/lib/chain/blocks/types.d.ts +2 -2
  26. package/lib/chain/blocks/types.js.map +1 -1
  27. package/lib/chain/blocks/verifyBlock.js +4 -4
  28. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  29. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -6
  30. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  31. package/lib/chain/blocks/verifyBlocksSanityChecks.js +3 -3
  32. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  33. package/lib/chain/blocks/writeBlockInputToDb.js +3 -3
  34. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  35. package/lib/chain/chain.d.ts +42 -0
  36. package/lib/chain/chain.js +48 -16
  37. package/lib/chain/chain.js.map +1 -1
  38. package/lib/chain/errors/attestationError.d.ts +13 -1
  39. package/lib/chain/errors/attestationError.js +10 -2
  40. package/lib/chain/errors/attestationError.js.map +1 -1
  41. package/lib/chain/errors/blockError.js +3 -4
  42. package/lib/chain/errors/blockError.js.map +1 -1
  43. package/lib/chain/forkChoice/index.js +9 -9
  44. package/lib/chain/forkChoice/index.js.map +1 -1
  45. package/lib/chain/historicalState/worker.js +4 -0
  46. package/lib/chain/historicalState/worker.js.map +1 -1
  47. package/lib/chain/initState.d.ts +3 -3
  48. package/lib/chain/initState.js +13 -13
  49. package/lib/chain/initState.js.map +1 -1
  50. package/lib/chain/interface.d.ts +2 -0
  51. package/lib/chain/interface.js.map +1 -1
  52. package/lib/chain/lightClient/index.js +9 -10
  53. package/lib/chain/lightClient/index.js.map +1 -1
  54. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +46 -12
  55. package/lib/chain/opPools/aggregatedAttestationPool.js +229 -63
  56. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  57. package/lib/chain/opPools/attestationPool.d.ts +22 -6
  58. package/lib/chain/opPools/attestationPool.js +61 -27
  59. package/lib/chain/opPools/attestationPool.js.map +1 -1
  60. package/lib/chain/opPools/opPool.d.ts +2 -2
  61. package/lib/chain/opPools/opPool.js +6 -3
  62. package/lib/chain/opPools/opPool.js.map +1 -1
  63. package/lib/chain/opPools/syncCommitteeMessagePool.js +4 -4
  64. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  65. package/lib/chain/opPools/syncContributionAndProofPool.js +4 -4
  66. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  67. package/lib/chain/opPools/utils.d.ts +2 -0
  68. package/lib/chain/opPools/utils.js +3 -0
  69. package/lib/chain/opPools/utils.js.map +1 -1
  70. package/lib/chain/produceBlock/produceBlockBody.js +7 -6
  71. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  72. package/lib/chain/regen/queued.d.ts +6 -1
  73. package/lib/chain/regen/queued.js +41 -3
  74. package/lib/chain/regen/queued.js.map +1 -1
  75. package/lib/chain/regen/regen.d.ts +1 -1
  76. package/lib/chain/regen/regen.js +51 -14
  77. package/lib/chain/regen/regen.js.map +1 -1
  78. package/lib/chain/seenCache/seenAttestationData.d.ts +13 -5
  79. package/lib/chain/seenCache/seenAttestationData.js +5 -3
  80. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  81. package/lib/chain/seenCache/seenCommitteeContribution.js +2 -3
  82. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  83. package/lib/chain/seenCache/seenGossipBlockInput.js +3 -4
  84. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  85. package/lib/chain/serializeState.d.ts +6 -0
  86. package/lib/chain/serializeState.js +22 -0
  87. package/lib/chain/serializeState.js.map +1 -0
  88. package/lib/chain/shufflingCache.js +2 -3
  89. package/lib/chain/shufflingCache.js.map +1 -1
  90. package/lib/chain/stateCache/blockStateCacheImpl.d.ts +1 -0
  91. package/lib/chain/stateCache/blockStateCacheImpl.js +8 -5
  92. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  93. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -0
  94. package/lib/chain/stateCache/fifoBlockStateCache.js +6 -3
  95. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  96. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +1 -0
  97. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +7 -5
  98. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  99. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +2 -2
  100. package/lib/chain/stateCache/persistentCheckpointsCache.js +29 -53
  101. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  102. package/lib/chain/stateCache/types.d.ts +4 -0
  103. package/lib/chain/stateCache/types.js.map +1 -1
  104. package/lib/chain/validation/aggregateAndProof.d.ts +4 -4
  105. package/lib/chain/validation/aggregateAndProof.js +26 -9
  106. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  107. package/lib/chain/validation/attestation.d.ts +27 -6
  108. package/lib/chain/validation/attestation.js +115 -37
  109. package/lib/chain/validation/attestation.js.map +1 -1
  110. package/lib/chain/validation/attesterSlashing.js +2 -1
  111. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  112. package/lib/chain/validation/blobSidecar.js +4 -4
  113. package/lib/chain/validation/blobSidecar.js.map +1 -1
  114. package/lib/chain/validation/block.js +3 -4
  115. package/lib/chain/validation/block.js.map +1 -1
  116. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +4 -3
  117. package/lib/chain/validation/signatureSets/aggregateAndProof.js +3 -2
  118. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  119. package/lib/chain/validation/syncCommittee.js +2 -2
  120. package/lib/chain/validation/syncCommittee.js.map +1 -1
  121. package/lib/eth1/eth1DepositDataTracker.d.ts +5 -2
  122. package/lib/eth1/eth1DepositDataTracker.js +13 -2
  123. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  124. package/lib/eth1/eth1MergeBlockTracker.js +2 -3
  125. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  126. package/lib/eth1/index.d.ts +2 -0
  127. package/lib/eth1/index.js +6 -0
  128. package/lib/eth1/index.js.map +1 -1
  129. package/lib/eth1/interface.d.ts +4 -0
  130. package/lib/eth1/utils/deposits.d.ts +2 -2
  131. package/lib/eth1/utils/deposits.js +8 -7
  132. package/lib/eth1/utils/deposits.js.map +1 -1
  133. package/lib/eth1/utils/eth1Vote.js +2 -2
  134. package/lib/eth1/utils/eth1Vote.js.map +1 -1
  135. package/lib/execution/engine/http.d.ts +2 -2
  136. package/lib/execution/engine/http.js +19 -15
  137. package/lib/execution/engine/http.js.map +1 -1
  138. package/lib/execution/engine/interface.d.ts +4 -4
  139. package/lib/execution/engine/interface.js.map +1 -1
  140. package/lib/execution/engine/mock.d.ts +1 -0
  141. package/lib/execution/engine/mock.js +6 -0
  142. package/lib/execution/engine/mock.js.map +1 -1
  143. package/lib/execution/engine/payloadIdCache.d.ts +17 -0
  144. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  145. package/lib/execution/engine/types.d.ts +29 -3
  146. package/lib/execution/engine/types.js +81 -0
  147. package/lib/execution/engine/types.js.map +1 -1
  148. package/lib/index.d.ts +2 -2
  149. package/lib/index.js +2 -2
  150. package/lib/index.js.map +1 -1
  151. package/lib/metrics/metrics/beacon.d.ts +3 -0
  152. package/lib/metrics/metrics/beacon.js +6 -0
  153. package/lib/metrics/metrics/beacon.js.map +1 -1
  154. package/lib/metrics/metrics/lodestar.d.ts +30 -3
  155. package/lib/metrics/metrics/lodestar.js +63 -4
  156. package/lib/metrics/metrics/lodestar.js.map +1 -1
  157. package/lib/metrics/validatorMonitor.d.ts +1 -1
  158. package/lib/metrics/validatorMonitor.js +15 -10
  159. package/lib/metrics/validatorMonitor.js.map +1 -1
  160. package/lib/network/gossip/encoding.js +6 -2
  161. package/lib/network/gossip/encoding.js.map +1 -1
  162. package/lib/network/gossip/interface.d.ts +5 -5
  163. package/lib/network/gossip/interface.js.map +1 -1
  164. package/lib/network/gossip/topic.d.ts +1720 -129
  165. package/lib/network/gossip/topic.js +5 -5
  166. package/lib/network/gossip/topic.js.map +1 -1
  167. package/lib/network/interface.d.ts +2 -2
  168. package/lib/network/network.d.ts +2 -2
  169. package/lib/network/network.js.map +1 -1
  170. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  171. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  172. package/lib/network/processor/gossipHandlers.js +10 -11
  173. package/lib/network/processor/gossipHandlers.js.map +1 -1
  174. package/lib/network/processor/gossipQueues/index.js +5 -2
  175. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  176. package/lib/network/processor/gossipQueues/indexed.js +1 -0
  177. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  178. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +2 -2
  179. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  180. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +2 -2
  181. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  182. package/lib/sync/backfill/backfill.js +16 -17
  183. package/lib/sync/backfill/backfill.js.map +1 -1
  184. package/lib/sync/range/chain.js +2 -3
  185. package/lib/sync/range/chain.js.map +1 -1
  186. package/lib/sync/range/range.js +4 -4
  187. package/lib/sync/range/range.js.map +1 -1
  188. package/lib/sync/range/utils/chainTarget.js +2 -2
  189. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  190. package/lib/sync/range/utils/hashBlocks.js +4 -4
  191. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  192. package/lib/sync/unknownBlock.js +12 -12
  193. package/lib/sync/unknownBlock.js.map +1 -1
  194. package/lib/util/bufferPool.d.ts +7 -2
  195. package/lib/util/bufferPool.js +13 -7
  196. package/lib/util/bufferPool.js.map +1 -1
  197. package/lib/util/sszBytes.d.ts +31 -8
  198. package/lib/util/sszBytes.js +85 -21
  199. package/lib/util/sszBytes.js.map +1 -1
  200. package/package.json +15 -15
@@ -33,6 +33,8 @@ export interface BlockStateCache {
33
33
  prune(headStateRootHex: RootHex): void;
34
34
  deleteAllBeforeEpoch(finalizedEpoch: Epoch): void;
35
35
  dumpSummary(): routes.lodestar.StateCacheItem[];
36
+ /** Expose beacon states stored in cache. Use with caution */
37
+ getStates(): IterableIterator<CachedBeaconStateAllForks>;
36
38
  }
37
39
  /**
38
40
  * Store checkpoint states to preserve epoch transition, this helps lodestar run exactly 1 epoch transition per epoch in normal network conditions.
@@ -69,6 +71,8 @@ export interface CheckpointStateCache {
69
71
  processState(blockRootHex: RootHex, state: CachedBeaconStateAllForks): Promise<number>;
70
72
  clear(): void;
71
73
  dumpSummary(): routes.lodestar.StateCacheItem[];
74
+ /** Expose beacon states stored in cache. Use with caution */
75
+ getStates(): IterableIterator<CachedBeaconStateAllForks>;
72
76
  }
73
77
  export declare enum CacheItemType {
74
78
  persisted = "persisted",
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chain/stateCache/types.ts"],"names":[],"mappings":"AA8EA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,uCAAsB,CAAA;AACxB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chain/stateCache/types.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,uCAAsB,CAAA;AACxB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
@@ -1,11 +1,11 @@
1
1
  import { ForkName } from "@lodestar/params";
2
- import { phase0, RootHex } from "@lodestar/types";
2
+ import { RootHex, IndexedAttestation, SignedAggregateAndProof } from "@lodestar/types";
3
3
  import { IBeaconChain } from "..";
4
4
  export type AggregateAndProofValidationResult = {
5
- indexedAttestation: phase0.IndexedAttestation;
5
+ indexedAttestation: IndexedAttestation;
6
6
  committeeIndices: Uint32Array;
7
7
  attDataRootHex: RootHex;
8
8
  };
9
- export declare function validateApiAggregateAndProof(fork: ForkName, chain: IBeaconChain, signedAggregateAndProof: phase0.SignedAggregateAndProof): Promise<AggregateAndProofValidationResult>;
10
- export declare function validateGossipAggregateAndProof(fork: ForkName, chain: IBeaconChain, signedAggregateAndProof: phase0.SignedAggregateAndProof, serializedData: Uint8Array): Promise<AggregateAndProofValidationResult>;
9
+ export declare function validateApiAggregateAndProof(fork: ForkName, chain: IBeaconChain, signedAggregateAndProof: SignedAggregateAndProof): Promise<AggregateAndProofValidationResult>;
10
+ export declare function validateGossipAggregateAndProof(fork: ForkName, chain: IBeaconChain, signedAggregateAndProof: SignedAggregateAndProof, serializedData: Uint8Array): Promise<AggregateAndProofValidationResult>;
11
11
  //# sourceMappingURL=aggregateAndProof.d.ts.map
@@ -1,11 +1,11 @@
1
- import { toHexString } from "@chainsafe/ssz";
1
+ import { ForkSeq } from "@lodestar/params";
2
2
  import { ssz } from "@lodestar/types";
3
3
  import { computeEpochAtSlot, isAggregatorFromCommitteeLength, createAggregateSignatureSetFromComponents, } from "@lodestar/state-transition";
4
+ import { toRootHex } from "@lodestar/utils";
4
5
  import { AttestationError, AttestationErrorCode, GossipAction } from "../errors/index.js";
5
6
  import { RegenCaller } from "../regen/index.js";
6
- import { getAttDataBase64FromSignedAggregateAndProofSerialized } from "../../util/sszBytes.js";
7
7
  import { getSelectionProofSignatureSet, getAggregateAndProofSignatureSet } from "./signatureSets/index.js";
8
- import { getAttestationDataSigningRoot, getCommitteeIndices, getShufflingForAttestationVerification, verifyHeadBlockAndTargetRoot, verifyPropagationSlotRange, } from "./attestation.js";
8
+ import { getAttestationDataSigningRoot, getCommitteeIndices, getSeenAttDataKeyFromSignedAggregateAndProof, getShufflingForAttestationVerification, verifyHeadBlockAndTargetRoot, verifyPropagationSlotRange, } from "./attestation.js";
9
9
  export async function validateApiAggregateAndProof(fork, chain, signedAggregateAndProof) {
10
10
  const skipValidationKnownAttesters = true;
11
11
  const prioritizeBls = true;
@@ -33,9 +33,23 @@ async function validateAggregateAndProof(fork, chain, signedAggregateAndProof, s
33
33
  const { aggregationBits } = aggregate;
34
34
  const attData = aggregate.data;
35
35
  const attSlot = attData.slot;
36
- const attDataBase64 = serializedData ? getAttDataBase64FromSignedAggregateAndProofSerialized(serializedData) : null;
37
- const cachedAttData = attDataBase64 ? chain.seenAttestationDatas.get(attSlot, attDataBase64) : null;
38
- const attIndex = attData.index;
36
+ const seenAttDataKey = serializedData ? getSeenAttDataKeyFromSignedAggregateAndProof(fork, serializedData) : null;
37
+ const cachedAttData = seenAttDataKey ? chain.seenAttestationDatas.get(attSlot, seenAttDataKey) : null;
38
+ let attIndex;
39
+ if (ForkSeq[fork] >= ForkSeq.electra) {
40
+ attIndex = aggregate.committeeBits.getSingleTrueBit();
41
+ // [REJECT] len(committee_indices) == 1, where committee_indices = get_committee_indices(aggregate)
42
+ if (attIndex === null) {
43
+ throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.NOT_EXACTLY_ONE_COMMITTEE_BIT_SET });
44
+ }
45
+ // [REJECT] aggregate.data.index == 0
46
+ if (attData.index !== 0) {
47
+ throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.NON_ZERO_ATTESTATION_DATA_INDEX });
48
+ }
49
+ }
50
+ else {
51
+ attIndex = attData.index;
52
+ }
39
53
  const attEpoch = computeEpochAtSlot(attSlot);
40
54
  const attTarget = attData.target;
41
55
  const targetEpoch = attTarget.epoch;
@@ -64,7 +78,7 @@ async function validateAggregateAndProof(fork, chain, signedAggregateAndProof, s
64
78
  // is a non-strict superset has _not_ already been seen.
65
79
  const attDataRootHex = cachedAttData
66
80
  ? cachedAttData.attDataRootHex
67
- : toHexString(ssz.phase0.AttestationData.hashTreeRoot(attData));
81
+ : toRootHex(ssz.phase0.AttestationData.hashTreeRoot(attData));
68
82
  if (!skipValidationKnownAttesters &&
69
83
  chain.seenAggregatedAttestations.isKnown(targetEpoch, attDataRootHex, aggregationBits)) {
70
84
  throw new AttestationError(GossipAction.IGNORE, {
@@ -87,7 +101,7 @@ async function validateAggregateAndProof(fork, chain, signedAggregateAndProof, s
87
101
  // [REJECT] The committee index is within the expected range
88
102
  // -- i.e. data.index < get_committee_count_per_slot(state, data.target.epoch)
89
103
  const committeeIndices = cachedAttData
90
- ? cachedAttData.committeeIndices
104
+ ? cachedAttData.committeeValidatorIndices
91
105
  : getCommitteeIndices(shuffling, attSlot, attIndex);
92
106
  // [REJECT] The number of aggregation bits matches the committee size
93
107
  // -- i.e. `len(aggregation_bits) == len(get_beacon_committee(state, aggregate.data.slot, index))`.
@@ -95,11 +109,14 @@ async function validateAggregateAndProof(fork, chain, signedAggregateAndProof, s
95
109
  throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.WRONG_NUMBER_OF_AGGREGATION_BITS });
96
110
  }
97
111
  const attestingIndices = aggregate.aggregationBits.intersectValues(committeeIndices);
98
- const indexedAttestation = {
112
+ const indexedAttestationContent = {
99
113
  attestingIndices,
100
114
  data: attData,
101
115
  signature: aggregate.signature,
102
116
  };
117
+ const indexedAttestation = ForkSeq[fork] >= ForkSeq.electra
118
+ ? indexedAttestationContent
119
+ : indexedAttestationContent;
103
120
  // TODO: Check this before regen
104
121
  // [REJECT] The attestation has participants -- that is,
105
122
  // len(get_attesting_indices(state, aggregate.data, aggregate.aggregation_bits)) >= 1.
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../src/chain/validation/aggregateAndProof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregateAndProof.js","sourceRoot":"","sources":["../../../src/chain/validation/aggregateAndProof.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { phase0, Epoch, Root, Slot, RootHex } from "@lodestar/types";
1
+ import { phase0, Epoch, Root, Slot, RootHex, CommitteeIndex, Attestation, IndexedAttestation } from "@lodestar/types";
2
2
  import { ProtoBlock } from "@lodestar/fork-choice";
3
3
  import { ForkName } from "@lodestar/params";
4
4
  import { SingleSignatureSet, EpochShuffling } from "@lodestar/state-transition";
5
5
  import { BeaconConfig } from "@lodestar/config";
6
6
  import { RegenCaller } from "../regen/index.js";
7
+ import { SeenAttDataKey } from "../seenCache/seenAttestationData.js";
7
8
  import { Result } from "../../util/wrapError.js";
8
9
  import { IBeaconChain } from "../interface.js";
9
10
  export type BatchResult = {
@@ -11,15 +12,16 @@ export type BatchResult = {
11
12
  batchableBls: boolean;
12
13
  };
13
14
  export type AttestationValidationResult = {
14
- attestation: phase0.Attestation;
15
- indexedAttestation: phase0.IndexedAttestation;
15
+ attestation: Attestation;
16
+ indexedAttestation: IndexedAttestation;
16
17
  subnet: number;
17
18
  attDataRootHex: RootHex;
19
+ committeeIndex: CommitteeIndex;
18
20
  };
19
21
  export type AttestationOrBytes = ApiAttestation | GossipAttestation;
20
22
  /** attestation from api */
21
23
  export type ApiAttestation = {
22
- attestation: phase0.Attestation;
24
+ attestation: Attestation;
23
25
  serializedData: null;
24
26
  };
25
27
  /** attestation from gossip */
@@ -27,7 +29,7 @@ export type GossipAttestation = {
27
29
  attestation: null;
28
30
  serializedData: Uint8Array;
29
31
  attSlot: Slot;
30
- attDataBase64?: string | null;
32
+ attDataBase64?: SeenAttDataKey | null;
31
33
  };
32
34
  export type Step0Result = AttestationValidationResult & {
33
35
  signatureSet: SingleSignatureSet;
@@ -45,7 +47,7 @@ subnet: number): Promise<AttestationValidationResult>;
45
47
  * - If there are less than 2 signatures (minSameMessageSignatureSetsToBatch), verify each signature individually with batchable = true
46
48
  * - do not prioritize bls signature set
47
49
  */
48
- export declare function validateGossipAttestationsSameAttData(fork: ForkName, chain: IBeaconChain, attestationOrBytesArr: AttestationOrBytes[], subnet: number, step0ValidationFn?: typeof validateGossipAttestationNoSignatureCheck): Promise<BatchResult>;
50
+ export declare function validateGossipAttestationsSameAttData(fork: ForkName, chain: IBeaconChain, attestationOrBytesArr: GossipAttestation[], subnet: number, step0ValidationFn?: typeof validateGossipAttestationNoSignatureCheck): Promise<BatchResult>;
49
51
  /**
50
52
  * Validate attestations from api
51
53
  * - no need to deserialize attestation
@@ -96,10 +98,29 @@ export declare function getShufflingForAttestationVerification(chain: IBeaconCha
96
98
  * Different version of getAttestationDataSigningRoot in state-transition which doesn't require a state.
97
99
  */
98
100
  export declare function getAttestationDataSigningRoot(config: BeaconConfig, data: phase0.AttestationData): Uint8Array;
101
+ /**
102
+ * Get a list of indices of validators in the given committee
103
+ * attestationIndex - Index of the committee in shuffling.committees
104
+ */
99
105
  export declare function getCommitteeIndices(shuffling: EpochShuffling, attestationSlot: Slot, attestationIndex: number): Uint32Array;
100
106
  /**
101
107
  * Compute the correct subnet for a slot/committee index
102
108
  */
103
109
  export declare function computeSubnetForSlot(shuffling: EpochShuffling, slot: number, committeeIndex: number): number;
110
+ /**
111
+ * Return fork-dependent seen attestation key
112
+ * - for pre-electra, it's the AttestationData base64
113
+ * - for electra and later, it's the AttestationData base64 + committeeBits base64
114
+ *
115
+ * we always have attDataBase64 from the IndexedGossipQueue, getAttDataFromAttestationSerialized() just for backward compatible when beaconAttestationBatchValidation is false
116
+ * TODO: remove beaconAttestationBatchValidation flag since the batch attestation is stable
117
+ */
118
+ export declare function getSeenAttDataKeyFromGossipAttestation(fork: ForkName, attestation: GossipAttestation): SeenAttDataKey | null;
119
+ /**
120
+ * Extract attestation data key from SignedAggregateAndProof Uint8Array to use cached data from SeenAttestationDatas
121
+ * - for pre-electra, it's the AttestationData base64
122
+ * - for electra and later, it's the AttestationData base64 + committeeBits base64
123
+ */
124
+ export declare function getSeenAttDataKeyFromSignedAggregateAndProof(fork: ForkName, aggregateAndProof: Uint8Array): SeenAttDataKey | null;
104
125
  export {};
105
126
  //# sourceMappingURL=attestation.d.ts.map
@@ -1,11 +1,11 @@
1
- import { toHexString } from "@chainsafe/ssz";
2
- import { ssz } from "@lodestar/types";
3
- import { ATTESTATION_SUBNET_COUNT, SLOTS_PER_EPOCH, ForkSeq, DOMAIN_BEACON_ATTESTER } from "@lodestar/params";
1
+ import { ssz, isElectraAttestation, } from "@lodestar/types";
2
+ import { ATTESTATION_SUBNET_COUNT, SLOTS_PER_EPOCH, ForkSeq, DOMAIN_BEACON_ATTESTER, isForkPostElectra, } from "@lodestar/params";
4
3
  import { computeEpochAtSlot, createSingleSignatureSetFromComponents, EpochCacheError, EpochCacheErrorCode, computeStartSlotAtEpoch, computeSigningRoot, } from "@lodestar/state-transition";
4
+ import { toRootHex } from "@lodestar/utils";
5
5
  import { AttestationError, AttestationErrorCode, GossipAction } from "../errors/index.js";
6
6
  import { MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC } from "../../constants/index.js";
7
7
  import { RegenCaller } from "../regen/index.js";
8
- import { getAggregationBitsFromAttestationSerialized, getAttDataBase64FromAttestationSerialized, getSignatureFromAttestationSerialized, } from "../../util/sszBytes.js";
8
+ import { getAggregationBitsFromAttestationSerialized, getAttDataFromAttestationSerialized, getAttDataFromSignedAggregateAndProofElectra, getCommitteeBitsFromAttestationSerialized, getCommitteeBitsFromSignedAggregateAndProofElectra, getAttDataFromSignedAggregateAndProofPhase0, getSignatureFromAttestationSerialized, } from "../../util/sszBytes.js";
9
9
  import { sszDeserializeAttestation } from "../../network/gossip/topic.js";
10
10
  import { wrapError } from "../../util/wrapError.js";
11
11
  import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
@@ -161,17 +161,14 @@ subnet) {
161
161
  // verify_early_checks
162
162
  // Run the checks that happen before an indexed attestation is constructed.
163
163
  let attestationOrCache;
164
- let attDataBase64 = null;
164
+ let attDataKey = null;
165
165
  if (attestationOrBytes.serializedData) {
166
166
  // gossip
167
167
  const attSlot = attestationOrBytes.attSlot;
168
- // for old LIFO linear gossip queue we don't have attDataBase64
169
- // for indexed gossip queue we have attDataBase64
170
- attDataBase64 =
171
- attestationOrBytes.attDataBase64 ?? getAttDataBase64FromAttestationSerialized(attestationOrBytes.serializedData);
172
- const cachedAttData = attDataBase64 !== null ? chain.seenAttestationDatas.get(attSlot, attDataBase64) : null;
168
+ attDataKey = getSeenAttDataKeyFromGossipAttestation(fork, attestationOrBytes);
169
+ const cachedAttData = attDataKey !== null ? chain.seenAttestationDatas.get(attSlot, attDataKey) : null;
173
170
  if (cachedAttData === null) {
174
- const attestation = sszDeserializeAttestation(attestationOrBytes.serializedData);
171
+ const attestation = sszDeserializeAttestation(fork, attestationOrBytes.serializedData);
175
172
  // only deserialize on the first AttestationData that's not cached
176
173
  attestationOrCache = { attestation, cache: null };
177
174
  }
@@ -181,17 +178,44 @@ subnet) {
181
178
  }
182
179
  else {
183
180
  // api
184
- attDataBase64 = null;
181
+ attDataKey = null;
185
182
  attestationOrCache = { attestation: attestationOrBytes.attestation, cache: null };
186
183
  }
187
184
  const attData = attestationOrCache.attestation
188
185
  ? attestationOrCache.attestation.data
189
186
  : attestationOrCache.cache.attestationData;
190
187
  const attSlot = attData.slot;
191
- const attIndex = attData.index;
192
188
  const attEpoch = computeEpochAtSlot(attSlot);
193
189
  const attTarget = attData.target;
194
190
  const targetEpoch = attTarget.epoch;
191
+ let committeeIndex;
192
+ if (attestationOrCache.attestation) {
193
+ if (isElectraAttestation(attestationOrCache.attestation)) {
194
+ // api or first time validation of a gossip attestation
195
+ const { committeeBits } = attestationOrCache.attestation;
196
+ // throw in both in case of undefined and null
197
+ if (committeeBits == null) {
198
+ throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.INVALID_SERIALIZED_BYTES });
199
+ }
200
+ committeeIndex = committeeBits.getSingleTrueBit();
201
+ // [REJECT] len(committee_indices) == 1, where committee_indices = get_committee_indices(aggregate)
202
+ if (committeeIndex === null) {
203
+ throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.NOT_EXACTLY_ONE_COMMITTEE_BIT_SET });
204
+ }
205
+ // [REJECT] aggregate.data.index == 0
206
+ if (attData.index !== 0) {
207
+ throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.NON_ZERO_ATTESTATION_DATA_INDEX });
208
+ }
209
+ }
210
+ else {
211
+ // phase0 attestation
212
+ committeeIndex = attData.index;
213
+ }
214
+ }
215
+ else {
216
+ // found a seen AttestationData
217
+ committeeIndex = attestationOrCache.cache.committeeIndex;
218
+ }
195
219
  chain.metrics?.gossipAttestation.attestationSlotToClockSlot.observe({ caller: RegenCaller.validateGossipAttestation }, chain.clock.currentSlot - attSlot);
196
220
  if (!attestationOrCache.cache) {
197
221
  // [REJECT] The attestation's epoch matches its target -- i.e. attestation.data.target.epoch == compute_epoch_at_slot(attestation.data.slot)
@@ -210,7 +234,7 @@ subnet) {
210
234
  // > TODO: Do this check **before** getting the target state but don't recompute zipIndexes
211
235
  const aggregationBits = attestationOrCache.attestation
212
236
  ? attestationOrCache.attestation.aggregationBits
213
- : getAggregationBitsFromAttestationSerialized(attestationOrCache.serializedData);
237
+ : getAggregationBitsFromAttestationSerialized(fork, attestationOrCache.serializedData);
214
238
  if (aggregationBits === null) {
215
239
  throw new AttestationError(GossipAction.REJECT, {
216
240
  code: AttestationErrorCode.INVALID_SERIALIZED_BYTES,
@@ -222,11 +246,11 @@ subnet) {
222
246
  code: AttestationErrorCode.NOT_EXACTLY_ONE_AGGREGATION_BIT_SET,
223
247
  });
224
248
  }
225
- let committeeIndices;
249
+ let committeeValidatorIndices;
226
250
  let getSigningRoot;
227
251
  let expectedSubnet;
228
252
  if (attestationOrCache.cache) {
229
- committeeIndices = attestationOrCache.cache.committeeIndices;
253
+ committeeValidatorIndices = attestationOrCache.cache.committeeValidatorIndices;
230
254
  const signingRoot = attestationOrCache.cache.signingRoot;
231
255
  getSigningRoot = () => signingRoot;
232
256
  expectedSubnet = attestationOrCache.cache.subnet;
@@ -250,15 +274,15 @@ subnet) {
250
274
  const shuffling = await getShufflingForAttestationVerification(chain, attEpoch, attHeadBlock, RegenCaller.validateGossipAttestation);
251
275
  // [REJECT] The committee index is within the expected range
252
276
  // -- i.e. data.index < get_committee_count_per_slot(state, data.target.epoch)
253
- committeeIndices = getCommitteeIndices(shuffling, attSlot, attIndex);
277
+ committeeValidatorIndices = getCommitteeIndices(shuffling, attSlot, committeeIndex);
254
278
  getSigningRoot = () => getAttestationDataSigningRoot(chain.config, attData);
255
- expectedSubnet = computeSubnetForSlot(shuffling, attSlot, attIndex);
279
+ expectedSubnet = computeSubnetForSlot(shuffling, attSlot, committeeIndex);
256
280
  }
257
- const validatorIndex = committeeIndices[bitIndex];
281
+ const validatorIndex = committeeValidatorIndices[bitIndex];
258
282
  // [REJECT] The number of aggregation bits matches the committee size
259
283
  // -- i.e. len(attestation.aggregation_bits) == len(get_beacon_committee(state, data.slot, data.index)).
260
284
  // > TODO: Is this necessary? Lighthouse does not do this check.
261
- if (aggregationBits.bitLen !== committeeIndices.length) {
285
+ if (aggregationBits.bitLen !== committeeValidatorIndices.length) {
262
286
  throw new AttestationError(GossipAction.REJECT, {
263
287
  code: AttestationErrorCode.WRONG_NUMBER_OF_AGGREGATION_BITS,
264
288
  });
@@ -299,18 +323,26 @@ subnet) {
299
323
  code: AttestationErrorCode.INVALID_SERIALIZED_BYTES,
300
324
  });
301
325
  }
326
+ let committeeBits = undefined;
302
327
  if (attestationOrCache.cache) {
303
328
  // there could be up to 6% of cpu time to compute signing root if we don't clone the signature set
304
329
  signatureSet = createSingleSignatureSetFromComponents(chain.index2pubkey[validatorIndex], attestationOrCache.cache.signingRoot, signature);
305
330
  attDataRootHex = attestationOrCache.cache.attDataRootHex;
331
+ committeeBits = attestationOrCache.cache.committeeBits;
306
332
  }
307
333
  else {
308
334
  signatureSet = createSingleSignatureSetFromComponents(chain.index2pubkey[validatorIndex], getSigningRoot(), signature);
309
335
  // add cached attestation data before verifying signature
310
- attDataRootHex = toHexString(ssz.phase0.AttestationData.hashTreeRoot(attData));
311
- if (attDataBase64) {
312
- chain.seenAttestationDatas.add(attSlot, attDataBase64, {
313
- committeeIndices,
336
+ attDataRootHex = toRootHex(ssz.phase0.AttestationData.hashTreeRoot(attData));
337
+ // if attestation is phase0 the committeeBits is undefined anyway
338
+ committeeBits = isElectraAttestation(attestationOrCache.attestation)
339
+ ? attestationOrCache.attestation.committeeBits.clone()
340
+ : undefined;
341
+ if (attDataKey) {
342
+ chain.seenAttestationDatas.add(attSlot, attDataKey, {
343
+ committeeValidatorIndices,
344
+ committeeBits,
345
+ committeeIndex,
314
346
  signingRoot: signatureSet.signingRoot,
315
347
  subnet: expectedSubnet,
316
348
  // precompute this to be used in forkchoice
@@ -321,19 +353,29 @@ subnet) {
321
353
  }
322
354
  }
323
355
  // no signature check, leave that for step1
324
- const indexedAttestation = {
356
+ const indexedAttestationContent = {
325
357
  attestingIndices,
326
358
  data: attData,
327
359
  signature,
328
360
  };
329
- const attestation = attestationOrCache.attestation
330
- ? attestationOrCache.attestation
331
- : {
332
- aggregationBits,
333
- data: attData,
334
- signature,
335
- };
336
- return { attestation, indexedAttestation, subnet: expectedSubnet, attDataRootHex, signatureSet, validatorIndex };
361
+ const indexedAttestation = ForkSeq[fork] >= ForkSeq.electra
362
+ ? indexedAttestationContent
363
+ : indexedAttestationContent;
364
+ const attestation = attestationOrCache.attestation ?? {
365
+ aggregationBits,
366
+ data: attData,
367
+ committeeBits,
368
+ signature,
369
+ };
370
+ return {
371
+ attestation,
372
+ indexedAttestation,
373
+ subnet: expectedSubnet,
374
+ attDataRootHex,
375
+ signatureSet,
376
+ validatorIndex,
377
+ committeeIndex,
378
+ };
337
379
  }
338
380
  /**
339
381
  * Verify that the `attestation` is within the acceptable gossip propagation range, with reference
@@ -480,7 +522,7 @@ function verifyHeadBlockIsKnown(chain, beaconBlockRoot) {
480
522
  if (headBlock === null) {
481
523
  throw new AttestationError(GossipAction.IGNORE, {
482
524
  code: AttestationErrorCode.UNKNOWN_OR_PREFINALIZED_BEACON_BLOCK_ROOT,
483
- root: toHexString(beaconBlockRoot),
525
+ root: toRootHex(beaconBlockRoot),
484
526
  });
485
527
  }
486
528
  return headBlock;
@@ -505,7 +547,7 @@ function verifyAttestationTargetRoot(headBlock, targetRoot, attestationEpoch) {
505
547
  // https://github.com/ethereum/consensus-specs/pull/2001#issuecomment-699246659
506
548
  throw new AttestationError(GossipAction.REJECT, {
507
549
  code: AttestationErrorCode.INVALID_TARGET_ROOT,
508
- targetRoot: toHexString(targetRoot),
550
+ targetRoot: toRootHex(targetRoot),
509
551
  expected: null,
510
552
  });
511
553
  }
@@ -520,16 +562,20 @@ function verifyAttestationTargetRoot(headBlock, targetRoot, attestationEpoch) {
520
562
  // We know the head block is from a previous epoch due to a previous check.
521
563
  headBlock.blockRoot;
522
564
  // TODO: Do a fast comparision to convert and compare byte by byte
523
- if (expectedTargetRoot !== toHexString(targetRoot)) {
565
+ if (expectedTargetRoot !== toRootHex(targetRoot)) {
524
566
  // Reject any attestation with an invalid target root.
525
567
  throw new AttestationError(GossipAction.REJECT, {
526
568
  code: AttestationErrorCode.INVALID_TARGET_ROOT,
527
- targetRoot: toHexString(targetRoot),
569
+ targetRoot: toRootHex(targetRoot),
528
570
  expected: expectedTargetRoot,
529
571
  });
530
572
  }
531
573
  }
532
574
  }
575
+ /**
576
+ * Get a list of indices of validators in the given committee
577
+ * attestationIndex - Index of the committee in shuffling.committees
578
+ */
533
579
  export function getCommitteeIndices(shuffling, attestationSlot, attestationIndex) {
534
580
  const { committees } = shuffling;
535
581
  const slotCommittees = committees[attestationSlot % SLOTS_PER_EPOCH];
@@ -549,4 +595,36 @@ export function computeSubnetForSlot(shuffling, slot, committeeIndex) {
549
595
  const committeesSinceEpochStart = shuffling.committeesPerSlot * slotsSinceEpochStart;
550
596
  return (committeesSinceEpochStart + committeeIndex) % ATTESTATION_SUBNET_COUNT;
551
597
  }
598
+ /**
599
+ * Return fork-dependent seen attestation key
600
+ * - for pre-electra, it's the AttestationData base64
601
+ * - for electra and later, it's the AttestationData base64 + committeeBits base64
602
+ *
603
+ * we always have attDataBase64 from the IndexedGossipQueue, getAttDataFromAttestationSerialized() just for backward compatible when beaconAttestationBatchValidation is false
604
+ * TODO: remove beaconAttestationBatchValidation flag since the batch attestation is stable
605
+ */
606
+ export function getSeenAttDataKeyFromGossipAttestation(fork, attestation) {
607
+ const { attDataBase64, serializedData } = attestation;
608
+ if (isForkPostElectra(fork)) {
609
+ const attData = attDataBase64 ?? getAttDataFromAttestationSerialized(serializedData);
610
+ const committeeBits = getCommitteeBitsFromAttestationSerialized(serializedData);
611
+ return attData && committeeBits ? attDataBase64 + committeeBits : null;
612
+ }
613
+ // pre-electra
614
+ return attDataBase64 ?? getAttDataFromAttestationSerialized(serializedData);
615
+ }
616
+ /**
617
+ * Extract attestation data key from SignedAggregateAndProof Uint8Array to use cached data from SeenAttestationDatas
618
+ * - for pre-electra, it's the AttestationData base64
619
+ * - for electra and later, it's the AttestationData base64 + committeeBits base64
620
+ */
621
+ export function getSeenAttDataKeyFromSignedAggregateAndProof(fork, aggregateAndProof) {
622
+ if (isForkPostElectra(fork)) {
623
+ const attData = getAttDataFromSignedAggregateAndProofElectra(aggregateAndProof);
624
+ const committeeBits = getCommitteeBitsFromSignedAggregateAndProofElectra(aggregateAndProof);
625
+ return attData && committeeBits ? attData + committeeBits : null;
626
+ }
627
+ // pre-electra
628
+ return getAttDataFromSignedAggregateAndProofPhase0(aggregateAndProof);
629
+ }
552
630
  //# sourceMappingURL=attestation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../../src/chain/validation/attestation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../../src/chain/validation/attestation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { getAttesterSlashableIndices, assertValidAttesterSlashing, getAttesterSlashingSignatureSets, } from "@lodestar/state-transition";
2
2
  import { AttesterSlashingError, AttesterSlashingErrorCode, GossipAction } from "../errors/index.js";
3
- export async function validateApiAttesterSlashing(chain, attesterSlashing) {
3
+ export async function validateApiAttesterSlashing(chain, attesterSlashing // TODO Electra: Handle electra.AttesterSlashing
4
+ ) {
4
5
  const prioritizeBls = true;
5
6
  return validateAttesterSlashing(chain, attesterSlashing, prioritizeBls);
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attesterSlashing.js","sourceRoot":"","sources":["../../../src/chain/validation/attesterSlashing.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAE,yBAAyB,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAElG,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,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAmB,EACnB,gBAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,qHAAqH;IACrH,uCAAuC;IACvC,iHAAiH;IACjH,+FAA+F;IAC/F,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9D,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,mDAAmD;QACnD,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC9D,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,EAAE,gBAAgB,CAAC,CAAC;IAChF,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":"attesterSlashing.js","sourceRoot":"","sources":["../../../src/chain/validation/attesterSlashing.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAE,yBAAyB,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAElG,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAAmB,EACnB,gBAAyC,CAAC,gDAAgD;;IAE1F,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,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAmB,EACnB,gBAAyC,EACzC,aAAa,GAAG,KAAK;IAErB,qHAAqH;IACrH,uCAAuC;IACvC,iHAAiH;IACjH,+FAA+F;IAC/F,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9D,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,mDAAmD;QACnD,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC9D,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,EAAE,gBAAgB,CAAC,CAAC;IAChF,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"}