@lodestar/beacon-node 1.50.0-dev.67e2b54129 → 1.50.0-dev.6d20ee6eb8

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 (210) hide show
  1. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/state/index.js +28 -6
  3. package/lib/api/impl/beacon/state/index.js.map +1 -1
  4. package/lib/api/impl/debug/index.d.ts.map +1 -1
  5. package/lib/api/impl/debug/index.js +26 -18
  6. package/lib/api/impl/debug/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts.map +1 -1
  8. package/lib/api/impl/validator/index.js +6 -0
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/archiveStore/archiveStore.d.ts +5 -0
  11. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  12. package/lib/chain/archiveStore/archiveStore.js +13 -23
  13. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  14. package/lib/chain/archiveStore/utils/pruneHistory.d.ts +1 -1
  15. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
  16. package/lib/chain/archiveStore/utils/pruneHistory.js +2 -1
  17. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  18. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  19. package/lib/chain/blocks/importBlock.js +13 -6
  20. package/lib/chain/blocks/importBlock.js.map +1 -1
  21. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  22. package/lib/chain/blocks/verifyBlock.js +6 -6
  23. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  24. package/lib/chain/chain.d.ts +3 -1
  25. package/lib/chain/chain.d.ts.map +1 -1
  26. package/lib/chain/chain.js +49 -20
  27. package/lib/chain/chain.js.map +1 -1
  28. package/lib/chain/interface.d.ts +1 -0
  29. package/lib/chain/interface.d.ts.map +1 -1
  30. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
  31. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  32. package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
  33. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  34. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  35. package/lib/chain/opPools/opPool.js +1 -23
  36. package/lib/chain/opPools/opPool.js.map +1 -1
  37. package/lib/chain/opPools/proposerPreferencesPool.d.ts +4 -0
  38. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  39. package/lib/chain/opPools/proposerPreferencesPool.js +13 -1
  40. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  41. package/lib/chain/opPools/utils.d.ts +11 -0
  42. package/lib/chain/opPools/utils.d.ts.map +1 -1
  43. package/lib/chain/opPools/utils.js +22 -0
  44. package/lib/chain/opPools/utils.js.map +1 -1
  45. package/lib/chain/options.d.ts +1 -0
  46. package/lib/chain/options.d.ts.map +1 -1
  47. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
  48. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  49. package/lib/chain/seenCache/seenGossipBlockInput.js +21 -0
  50. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  51. package/lib/chain/shufflingCache.d.ts +18 -8
  52. package/lib/chain/shufflingCache.d.ts.map +1 -1
  53. package/lib/chain/shufflingCache.js +72 -18
  54. package/lib/chain/shufflingCache.js.map +1 -1
  55. package/lib/db/beacon.d.ts +4 -1
  56. package/lib/db/beacon.d.ts.map +1 -1
  57. package/lib/db/beacon.js +6 -1
  58. package/lib/db/beacon.js.map +1 -1
  59. package/lib/db/buckets.d.ts +3 -1
  60. package/lib/db/buckets.d.ts.map +1 -1
  61. package/lib/db/buckets.js +2 -0
  62. package/lib/db/buckets.js.map +1 -1
  63. package/lib/db/interface.d.ts +4 -1
  64. package/lib/db/interface.d.ts.map +1 -1
  65. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  66. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  67. package/lib/db/repositories/earliestAvailableSlot.d.ts +11 -0
  68. package/lib/db/repositories/earliestAvailableSlot.d.ts.map +1 -0
  69. package/lib/db/repositories/earliestAvailableSlot.js +19 -0
  70. package/lib/db/repositories/earliestAvailableSlot.js.map +1 -0
  71. package/lib/db/repositories/index.d.ts +1 -0
  72. package/lib/db/repositories/index.d.ts.map +1 -1
  73. package/lib/db/repositories/index.js +1 -0
  74. package/lib/db/repositories/index.js.map +1 -1
  75. package/lib/db/repositories/proposerPreferences.d.ts +14 -0
  76. package/lib/db/repositories/proposerPreferences.d.ts.map +1 -0
  77. package/lib/db/repositories/proposerPreferences.js +21 -0
  78. package/lib/db/repositories/proposerPreferences.js.map +1 -0
  79. package/lib/execution/engine/blobVersionedHashes.d.ts +9 -0
  80. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -0
  81. package/lib/execution/engine/blobVersionedHashes.js +74 -0
  82. package/lib/execution/engine/blobVersionedHashes.js.map +1 -0
  83. package/lib/execution/engine/http.d.ts +45 -13
  84. package/lib/execution/engine/http.d.ts.map +1 -1
  85. package/lib/execution/engine/http.js +236 -198
  86. package/lib/execution/engine/http.js.map +1 -1
  87. package/lib/execution/engine/index.d.ts +3 -2
  88. package/lib/execution/engine/index.d.ts.map +1 -1
  89. package/lib/execution/engine/index.js +33 -8
  90. package/lib/execution/engine/index.js.map +1 -1
  91. package/lib/execution/engine/interface.d.ts +1 -1
  92. package/lib/execution/engine/interface.d.ts.map +1 -1
  93. package/lib/execution/engine/jsonRpcTransport.d.ts +25 -0
  94. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -0
  95. package/lib/execution/engine/jsonRpcTransport.js +158 -0
  96. package/lib/execution/engine/jsonRpcTransport.js.map +1 -0
  97. package/lib/execution/engine/restHttpClient.d.ts +71 -0
  98. package/lib/execution/engine/restHttpClient.d.ts.map +1 -0
  99. package/lib/execution/engine/restHttpClient.js +201 -0
  100. package/lib/execution/engine/restHttpClient.js.map +1 -0
  101. package/lib/execution/engine/restTransport.d.ts +46 -0
  102. package/lib/execution/engine/restTransport.d.ts.map +1 -0
  103. package/lib/execution/engine/restTransport.js +399 -0
  104. package/lib/execution/engine/restTransport.js.map +1 -0
  105. package/lib/execution/engine/sszTypes.d.ts +1261 -0
  106. package/lib/execution/engine/sszTypes.d.ts.map +1 -0
  107. package/lib/execution/engine/sszTypes.js +216 -0
  108. package/lib/execution/engine/sszTypes.js.map +1 -0
  109. package/lib/execution/engine/transport.d.ts +39 -0
  110. package/lib/execution/engine/transport.d.ts.map +1 -0
  111. package/lib/execution/engine/transport.js +2 -0
  112. package/lib/execution/engine/transport.js.map +1 -0
  113. package/lib/execution/engine/types.d.ts +2 -0
  114. package/lib/execution/engine/types.d.ts.map +1 -1
  115. package/lib/execution/engine/types.js +24 -57
  116. package/lib/execution/engine/types.js.map +1 -1
  117. package/lib/execution/engine/utils.d.ts.map +1 -1
  118. package/lib/execution/engine/utils.js +9 -2
  119. package/lib/execution/engine/utils.js.map +1 -1
  120. package/lib/metrics/metrics/lodestar.d.ts +10 -0
  121. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  122. package/lib/metrics/metrics/lodestar.js +22 -0
  123. package/lib/metrics/metrics/lodestar.js.map +1 -1
  124. package/lib/network/core/events.d.ts +5 -1
  125. package/lib/network/core/events.d.ts.map +1 -1
  126. package/lib/network/core/events.js +8 -0
  127. package/lib/network/core/events.js.map +1 -1
  128. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  129. package/lib/network/processor/gossipHandlers.js +59 -63
  130. package/lib/network/processor/gossipHandlers.js.map +1 -1
  131. package/lib/node/nodejs.d.ts +3 -1
  132. package/lib/node/nodejs.d.ts.map +1 -1
  133. package/lib/node/nodejs.js +2 -1
  134. package/lib/node/nodejs.js.map +1 -1
  135. package/lib/node/options.d.ts +3 -2
  136. package/lib/node/options.d.ts.map +1 -1
  137. package/lib/node/options.js +2 -2
  138. package/lib/node/options.js.map +1 -1
  139. package/lib/sync/range/batch.d.ts +5 -5
  140. package/lib/sync/range/batch.d.ts.map +1 -1
  141. package/lib/sync/range/batch.js +11 -17
  142. package/lib/sync/range/batch.js.map +1 -1
  143. package/lib/sync/range/chain.d.ts +4 -4
  144. package/lib/sync/range/chain.d.ts.map +1 -1
  145. package/lib/sync/range/chain.js +7 -5
  146. package/lib/sync/range/chain.js.map +1 -1
  147. package/lib/sync/range/range.d.ts.map +1 -1
  148. package/lib/sync/range/range.js +25 -11
  149. package/lib/sync/range/range.js.map +1 -1
  150. package/lib/sync/unknownBlock.d.ts +5 -2
  151. package/lib/sync/unknownBlock.d.ts.map +1 -1
  152. package/lib/sync/unknownBlock.js +44 -20
  153. package/lib/sync/unknownBlock.js.map +1 -1
  154. package/lib/sync/utils/downloadByRange.d.ts +38 -14
  155. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  156. package/lib/sync/utils/downloadByRange.js +84 -39
  157. package/lib/sync/utils/downloadByRange.js.map +1 -1
  158. package/lib/util/asyncIterableToEvents.d.ts +10 -2
  159. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  160. package/lib/util/asyncIterableToEvents.js +29 -3
  161. package/lib/util/asyncIterableToEvents.js.map +1 -1
  162. package/lib/util/metadata.d.ts.map +1 -1
  163. package/lib/util/metadata.js +2 -1
  164. package/lib/util/metadata.js.map +1 -1
  165. package/package.json +17 -16
  166. package/src/api/impl/beacon/state/index.ts +43 -6
  167. package/src/api/impl/debug/index.ts +28 -19
  168. package/src/api/impl/validator/index.ts +8 -0
  169. package/src/chain/archiveStore/archiveStore.ts +18 -24
  170. package/src/chain/archiveStore/utils/pruneHistory.ts +4 -1
  171. package/src/chain/blocks/importBlock.ts +16 -5
  172. package/src/chain/blocks/verifyBlock.ts +7 -6
  173. package/src/chain/chain.ts +70 -19
  174. package/src/chain/interface.ts +1 -0
  175. package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
  176. package/src/chain/opPools/opPool.ts +1 -31
  177. package/src/chain/opPools/proposerPreferencesPool.ts +20 -1
  178. package/src/chain/opPools/utils.ts +31 -0
  179. package/src/chain/options.ts +1 -1
  180. package/src/chain/seenCache/seenGossipBlockInput.ts +23 -0
  181. package/src/chain/shufflingCache.ts +84 -22
  182. package/src/db/beacon.ts +6 -0
  183. package/src/db/buckets.ts +2 -0
  184. package/src/db/interface.ts +4 -0
  185. package/src/db/repositories/earliestAvailableSlot.ts +19 -0
  186. package/src/db/repositories/index.ts +1 -0
  187. package/src/db/repositories/proposerPreferences.ts +23 -0
  188. package/src/execution/engine/blobVersionedHashes.ts +72 -0
  189. package/src/execution/engine/http.ts +304 -271
  190. package/src/execution/engine/index.ts +41 -7
  191. package/src/execution/engine/interface.ts +1 -1
  192. package/src/execution/engine/jsonRpcTransport.ts +247 -0
  193. package/src/execution/engine/restHttpClient.ts +269 -0
  194. package/src/execution/engine/restTransport.ts +544 -0
  195. package/src/execution/engine/sszTypes.ts +354 -0
  196. package/src/execution/engine/transport.ts +61 -0
  197. package/src/execution/engine/types.ts +34 -74
  198. package/src/execution/engine/utils.ts +12 -2
  199. package/src/metrics/metrics/lodestar.ts +23 -0
  200. package/src/network/core/events.ts +16 -1
  201. package/src/network/processor/gossipHandlers.ts +90 -76
  202. package/src/node/nodejs.ts +4 -0
  203. package/src/node/options.ts +10 -1
  204. package/src/sync/range/batch.ts +14 -19
  205. package/src/sync/range/chain.ts +9 -7
  206. package/src/sync/range/range.ts +26 -12
  207. package/src/sync/unknownBlock.ts +57 -21
  208. package/src/sync/utils/downloadByRange.ts +123 -58
  209. package/src/util/asyncIterableToEvents.ts +44 -5
  210. package/src/util/metadata.ts +2 -1
@@ -3,19 +3,22 @@ import { EpochShuffling, IBeaconStateView } from "@lodestar/state-transition";
3
3
  import { Attestation, CommitteeIndex, Epoch, IndexedAttestation, RootHex, Slot } from "@lodestar/types";
4
4
  import { LodestarError, Logger } from "@lodestar/utils";
5
5
  import { Metrics } from "../metrics/metrics.js";
6
+ export declare enum ShufflingPromiseCancelReason {
7
+ regenError = "regen_error",
8
+ decisionRootMismatch = "decision_root_mismatch",
9
+ pruned = "pruned"
10
+ }
6
11
  export type ShufflingCacheOpts = {
7
12
  maxShufflingCacheEpochs?: number;
8
13
  };
9
14
  /**
10
- * A shuffling cache to help:
11
- * - get committee quickly for attestation verification
12
- * - if a shuffling is not available (which does not happen with default chain option of maxSkipSlots = 32), track a promise to make sure we don't compute the same shuffling twice
13
- * - skip computing shuffling when loading state bytes from disk
15
+ * Cache recent epoch shufflings for lookahead duties, gossip validation, and block production.
16
+ * Pending promises deduplicate computation of missing shufflings.
14
17
  */
15
18
  export declare class ShufflingCache {
16
19
  readonly metrics: Metrics | null;
17
20
  readonly logger: Logger | null;
18
- /** LRU cache implemented as a map, pruned every time we add an item */
21
+ /** Pruned to the `maxEpochs` highest epochs every time we add a shuffling */
19
22
  private readonly itemsByDecisionRootByEpoch;
20
23
  private readonly maxEpochs;
21
24
  constructor(metrics?: Metrics | null, logger?: Logger | null, opts?: ShufflingCacheOpts, precalculatedShufflings?: {
@@ -34,9 +37,7 @@ export declare class ShufflingCache {
34
37
  */
35
38
  get(epoch: Epoch, decisionRoot: RootHex): Promise<EpochShuffling | null>;
36
39
  /**
37
- * Get a shuffling synchronously, return null if not present.
38
- * The only time we have a promise cache item is when we regen shuffling for attestation, which never happens
39
- * with default chain option.
40
+ * Get a shuffling synchronously, return null if not present or if it's still being computed.
40
41
  */
41
42
  getSync(epoch: Epoch, decisionRoot: RootHex): EpochShuffling | null;
42
43
  /**
@@ -50,9 +51,14 @@ export declare class ShufflingCache {
50
51
  * Uses the stored decision roots from epochCtx.
51
52
  */
52
53
  processState(state: IBeaconStateView): void;
54
+ /**
55
+ * Resolve a pending promise with null so that waiters don't hang, then remove it.
56
+ */
57
+ cancelPromise(epoch: Epoch, decisionRoot: RootHex, reason: ShufflingPromiseCancelReason): void;
53
58
  getIndexedAttestation(epoch: number, decisionRoot: string, fork: ForkSeq, attestation: Attestation): IndexedAttestation;
54
59
  getAttestingIndices(epoch: number, decisionRoot: string, fork: ForkSeq, attestation: Attestation): number[];
55
60
  getBeaconCommittee(epoch: number, decisionRoot: string, slot: Slot, index: CommitteeIndex): Uint32Array;
61
+ getBeaconCommitteeOrNull(epoch: number, decisionRoot: string, slot: Slot, index: CommitteeIndex): Uint32Array | null;
56
62
  getBeaconCommittees(epoch: number, decisionRoot: string, slot: Slot, indices: CommitteeIndex[]): Uint32Array[];
57
63
  private getShufflingOrThrow;
58
64
  /**
@@ -60,6 +66,10 @@ export declare class ShufflingCache {
60
66
  * resolve the promise with the built shuffling
61
67
  */
62
68
  private set;
69
+ /**
70
+ * Keep the `maxEpochs` highest epochs, regardless of insertion order.
71
+ */
72
+ private prune;
63
73
  }
64
74
  export declare enum ShufflingCacheErrorCode {
65
75
  NO_SHUFFLING_FOUND = "SHUFFLING_CACHE_ERROR_NO_SHUFFLING_FOUND"
@@ -1 +1 @@
1
- {"version":3,"file":"shufflingCache.d.ts","sourceRoot":"","sources":["../../src/chain/shufflingCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAgB,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAC,aAAa,EAAE,MAAM,EAAwB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAmC9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,cAAc;IASvB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAThC,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAEzC;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YACW,OAAO,GAAE,OAAO,GAAG,IAAW,EAC9B,MAAM,GAAE,MAAM,GAAG,IAAW,EACrC,IAAI,GAAE,kBAAuB,EAC7B,uBAAuB,CAAC,EAAE;QAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,EAAE,EAiBtF;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CAyBvD;IAED;;;;OAIG;IACG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAa7E;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAalE;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAGhD;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAe1C;IAED,qBAAqB,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAGpB;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAG1G;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEtG;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAG7G;IAED,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;IACH,OAAO,CAAC,GAAG;CAoBZ;AAUD,oBAAY,uBAAuB;IACjC,kBAAkB,6CAA6C;CAChE;AAED,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IACjD,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,uBAAuB,CAAC;CAAG"}
1
+ {"version":3,"file":"shufflingCache.d.ts","sourceRoot":"","sources":["../../src/chain/shufflingCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAgB,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAC,aAAa,EAAE,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAkC9C,oBAAY,4BAA4B;IACtC,UAAU,gBAAgB;IAC1B,oBAAoB,2BAA2B;IAC/C,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,qBAAa,cAAc;IASvB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAThC,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAEzC;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YACW,OAAO,GAAE,OAAO,GAAG,IAAW,EAC9B,MAAM,GAAE,MAAM,GAAG,IAAW,EACrC,IAAI,GAAE,kBAAuB,EAC7B,uBAAuB,CAAC,EAAE;QAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,EAAE,EAoBtF;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,IAAI,CAyBvD;IAED;;;;OAIG;IACG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAa7E;IAED;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAalE;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAGhD;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAe1C;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,4BAA4B,GAAG,IAAI,CAc7F;IAED,qBAAqB,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAGpB;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAG1G;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEtG;IAED,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI,CAGnH;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAG7G;IAED,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;IACH,OAAO,CAAC,GAAG;IAoBX;;OAEG;IACH,OAAO,CAAC,KAAK;CA+Bd;AAUD,oBAAY,uBAAuB;IACjC,kBAAkB,6CAA6C;CAChE;AAED,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IACjD,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,uBAAuB,CAAC;CAAG"}
@@ -1,11 +1,9 @@
1
1
  import { GENESIS_EPOCH } from "@lodestar/params";
2
2
  import { getAttestingIndices, getBeaconCommittees, getIndexedAttestation, } from "@lodestar/state-transition";
3
- import { LodestarError, MapDef, pruneSetToMax } from "@lodestar/utils";
3
+ import { LodestarError, MapDef } from "@lodestar/utils";
4
4
  /**
5
- * Same value to CheckpointBalancesCache, with the assumption that we don't have to use it for old epochs. In the worse case:
6
- * - when loading state bytes from disk, we need to compute shuffling for all epochs (~1s as of Sep 2023)
7
- * - don't have shuffling to verify attestations, need to do 1 epoch transition to add shuffling to this cache. This never happens
8
- * with default chain option of maxSkipSlots = 32
5
+ * Lookahead duties, gossip validation, and block production need epochs n-1, n, and n+1 for current epoch n.
6
+ * Keep the 4 highest epochs so that it works for epoch rotation.
9
7
  **/
10
8
  const MAX_EPOCHS = 4;
11
9
  /**
@@ -18,16 +16,20 @@ var CacheItemType;
18
16
  CacheItemType[CacheItemType["shuffling"] = 0] = "shuffling";
19
17
  CacheItemType[CacheItemType["promise"] = 1] = "promise";
20
18
  })(CacheItemType || (CacheItemType = {}));
19
+ export var ShufflingPromiseCancelReason;
20
+ (function (ShufflingPromiseCancelReason) {
21
+ ShufflingPromiseCancelReason["regenError"] = "regen_error";
22
+ ShufflingPromiseCancelReason["decisionRootMismatch"] = "decision_root_mismatch";
23
+ ShufflingPromiseCancelReason["pruned"] = "pruned";
24
+ })(ShufflingPromiseCancelReason || (ShufflingPromiseCancelReason = {}));
21
25
  /**
22
- * A shuffling cache to help:
23
- * - get committee quickly for attestation verification
24
- * - if a shuffling is not available (which does not happen with default chain option of maxSkipSlots = 32), track a promise to make sure we don't compute the same shuffling twice
25
- * - skip computing shuffling when loading state bytes from disk
26
+ * Cache recent epoch shufflings for lookahead duties, gossip validation, and block production.
27
+ * Pending promises deduplicate computation of missing shufflings.
26
28
  */
27
29
  export class ShufflingCache {
28
30
  metrics;
29
31
  logger;
30
- /** LRU cache implemented as a map, pruned every time we add an item */
32
+ /** Pruned to the `maxEpochs` highest epochs every time we add a shuffling */
31
33
  itemsByDecisionRootByEpoch = new MapDef(() => new Map());
32
34
  maxEpochs;
33
35
  constructor(metrics = null, logger = null, opts = {}, precalculatedShufflings) {
@@ -35,6 +37,7 @@ export class ShufflingCache {
35
37
  this.logger = logger;
36
38
  if (metrics) {
37
39
  metrics.shufflingCache.size.addCollect(() => metrics.shufflingCache.size.set(Array.from(this.itemsByDecisionRootByEpoch.values()).reduce((total, innerMap) => total + innerMap.size, 0)));
40
+ metrics.shufflingCache.epochs.addCollect(() => metrics.shufflingCache.epochs.set(this.itemsByDecisionRootByEpoch.size));
38
41
  }
39
42
  this.maxEpochs = opts.maxShufflingCacheEpochs ?? MAX_EPOCHS;
40
43
  precalculatedShufflings?.map(({ shuffling, decisionRoot }) => {
@@ -76,7 +79,7 @@ export class ShufflingCache {
76
79
  * Return null if we don't have a shuffling for this epoch and dependentRootHex.
77
80
  */
78
81
  async get(epoch, decisionRoot) {
79
- const cacheItem = this.itemsByDecisionRootByEpoch.getOrDefault(epoch).get(decisionRoot);
82
+ const cacheItem = this.itemsByDecisionRootByEpoch.get(epoch)?.get(decisionRoot);
80
83
  if (cacheItem === undefined) {
81
84
  this.metrics?.shufflingCache.miss.inc();
82
85
  return null;
@@ -89,12 +92,10 @@ export class ShufflingCache {
89
92
  return cacheItem.promise;
90
93
  }
91
94
  /**
92
- * Get a shuffling synchronously, return null if not present.
93
- * The only time we have a promise cache item is when we regen shuffling for attestation, which never happens
94
- * with default chain option.
95
+ * Get a shuffling synchronously, return null if not present or if it's still being computed.
95
96
  */
96
97
  getSync(epoch, decisionRoot) {
97
- const cacheItem = this.itemsByDecisionRootByEpoch.getOrDefault(epoch).get(decisionRoot);
98
+ const cacheItem = this.itemsByDecisionRootByEpoch.get(epoch)?.get(decisionRoot);
98
99
  if (cacheItem === undefined) {
99
100
  this.metrics?.shufflingCache.miss.inc();
100
101
  return null;
@@ -111,7 +112,7 @@ export class ShufflingCache {
111
112
  * `NativeBeaconStateView`.
112
113
  */
113
114
  has(epoch, decisionRoot) {
114
- const cacheItem = this.itemsByDecisionRootByEpoch.getOrDefault(epoch).get(decisionRoot);
115
+ const cacheItem = this.itemsByDecisionRootByEpoch.get(epoch)?.get(decisionRoot);
115
116
  return cacheItem !== undefined && isShufflingCacheItem(cacheItem);
116
117
  }
117
118
  /**
@@ -131,6 +132,23 @@ export class ShufflingCache {
131
132
  this.set(state.getNextShuffling(), state.nextDecisionRoot);
132
133
  }
133
134
  }
135
+ /**
136
+ * Resolve a pending promise with null so that waiters don't hang, then remove it.
137
+ */
138
+ cancelPromise(epoch, decisionRoot, reason) {
139
+ const itemsByDecisionRoot = this.itemsByDecisionRootByEpoch.get(epoch);
140
+ const cacheItem = itemsByDecisionRoot?.get(decisionRoot);
141
+ if (itemsByDecisionRoot === undefined || cacheItem === undefined || !isPromiseCacheItem(cacheItem)) {
142
+ return;
143
+ }
144
+ cacheItem.resolveFn(null);
145
+ itemsByDecisionRoot.delete(decisionRoot);
146
+ if (itemsByDecisionRoot.size === 0) {
147
+ this.itemsByDecisionRootByEpoch.delete(epoch);
148
+ }
149
+ this.metrics?.shufflingCache.cancelledPromises.inc({ reason });
150
+ this.logger?.debug("Cancelled shuffling promise", { epoch, decisionRoot, reason });
151
+ }
134
152
  getIndexedAttestation(epoch, decisionRoot, fork, attestation) {
135
153
  const shuffling = this.getShufflingOrThrow(epoch, decisionRoot);
136
154
  return getIndexedAttestation(shuffling, fork, attestation);
@@ -142,6 +160,10 @@ export class ShufflingCache {
142
160
  getBeaconCommittee(epoch, decisionRoot, slot, index) {
143
161
  return this.getBeaconCommittees(epoch, decisionRoot, slot, [index])[0];
144
162
  }
163
+ getBeaconCommitteeOrNull(epoch, decisionRoot, slot, index) {
164
+ const shuffling = this.getSync(epoch, decisionRoot);
165
+ return shuffling === null ? null : getBeaconCommittees(shuffling, slot, [index])[0];
166
+ }
145
167
  getBeaconCommittees(epoch, decisionRoot, slot, indices) {
146
168
  const shuffling = this.getShufflingOrThrow(epoch, decisionRoot);
147
169
  return getBeaconCommittees(shuffling, slot, indices);
@@ -177,8 +199,40 @@ export class ShufflingCache {
177
199
  }
178
200
  // set the shuffling
179
201
  shufflingAtEpoch.set(decisionRoot, { type: CacheItemType.shuffling, shuffling });
180
- // prune the cache
181
- pruneSetToMax(this.itemsByDecisionRootByEpoch, this.maxEpochs);
202
+ this.prune();
203
+ }
204
+ /**
205
+ * Keep the `maxEpochs` highest epochs, regardless of insertion order.
206
+ */
207
+ prune() {
208
+ const toDelete = this.itemsByDecisionRootByEpoch.size - this.maxEpochs;
209
+ if (toDelete <= 0) {
210
+ return;
211
+ }
212
+ const prunedEpochs = Array.from(this.itemsByDecisionRootByEpoch.keys())
213
+ .sort((a, b) => a - b)
214
+ .slice(0, toDelete);
215
+ let prunedShufflings = 0;
216
+ for (const epoch of prunedEpochs) {
217
+ for (const cacheItem of this.itemsByDecisionRootByEpoch.get(epoch)?.values() ?? []) {
218
+ if (isPromiseCacheItem(cacheItem)) {
219
+ cacheItem.resolveFn(null);
220
+ this.metrics?.shufflingCache.cancelledPromises.inc({ reason: ShufflingPromiseCancelReason.pruned });
221
+ }
222
+ else {
223
+ prunedShufflings++;
224
+ }
225
+ }
226
+ this.itemsByDecisionRootByEpoch.delete(epoch);
227
+ }
228
+ this.metrics?.shufflingCache.prunedShufflings.inc(prunedShufflings);
229
+ this.logger?.verbose("Pruned shuffling cache", {
230
+ prunedEpochs: prunedEpochs.join(","),
231
+ prunedShufflings,
232
+ cachedEpochs: Array.from(this.itemsByDecisionRootByEpoch.keys())
233
+ .sort((a, b) => a - b)
234
+ .join(","),
235
+ });
182
236
  }
183
237
  }
184
238
  function isShufflingCacheItem(item) {
@@ -1 +1 @@
1
- {"version":3,"file":"shufflingCache.js","sourceRoot":"","sources":["../../src/chain/shufflingCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shufflingCache.js","sourceRoot":"","sources":["../../src/chain/shufflingCache.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ import { type IDataColumnStore } from "./dataColumnStore.js";
6
6
  import type { FlatFileStoreMetrics } from "./flatFileStore/metrics.js";
7
7
  import { IBeaconDb } from "./interface.js";
8
8
  import { CheckpointStateRepository } from "./repositories/checkpointState.js";
9
- import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
9
+ import { EarliestAvailableSlotRepository } from "./repositories/earliestAvailableSlot.js";
10
+ import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerPreferencesRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
10
11
  export type BeaconDbOpts = {
11
12
  dataColumnDir: string;
12
13
  logger: Logger;
@@ -24,8 +25,10 @@ export declare class BeaconDb implements IBeaconDb {
24
25
  executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
25
26
  stateArchive: StateArchiveRepository;
26
27
  checkpointState: CheckpointStateRepository;
28
+ earliestAvailableSlot: EarliestAvailableSlotRepository;
27
29
  voluntaryExit: VoluntaryExitRepository;
28
30
  proposerSlashing: ProposerSlashingRepository;
31
+ proposerPreferences: ProposerPreferencesRepository;
29
32
  attesterSlashing: AttesterSlashingRepository;
30
33
  blsToExecutionChange: BLSToExecutionChangeRepository;
31
34
  bestLightClientUpdate: BestLightClientUpdateRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,wBAAwB,EAAY,MAAM,cAAc,CAAC;AACrE,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,KAAK,gBAAgB,EAAwB,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,qBAAa,QAAS,YAAW,SAAS;IAgCtC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;IA/B3B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAE3E,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAE3C,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,YACE,MAAM,EAAE,eAAe,EACJ,EAAE,EAAE,EAAE,EACzB,IAAI,EAAE,YAAY,EAkCnB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,GAAE,oBAAoB,GAAG,IAAW,GAAG,IAAI,CAG5G;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhC;IAEK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9C;YAEa,gBAAgB;CAoB/B"}
1
+ {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,wBAAwB,EAAY,MAAM,cAAc,CAAC;AACrE,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,KAAK,gBAAgB,EAAwB,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,qBAAa,QAAS,YAAW,SAAS;IAkCtC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;IAjC3B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAE3E,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,qBAAqB,EAAE,+BAA+B,CAAC;IAEvD,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,YACE,MAAM,EAAE,eAAe,EACJ,EAAE,EAAE,EAAE,EACzB,IAAI,EAAE,YAAY,EAoCnB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,GAAE,oBAAoB,GAAG,IAAW,GAAG,IAAI,CAG5G;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhC;IAEK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9C;YAEa,gBAAgB;CAoB/B"}
package/lib/db/beacon.js CHANGED
@@ -3,7 +3,8 @@ import { Bucket } from "./buckets.js";
3
3
  import { LegacyDataColumnStore } from "./dataColumnStore.js";
4
4
  import { FlatFileStore } from "./flatFileStore/flatFileStore.js";
5
5
  import { CheckpointStateRepository } from "./repositories/checkpointState.js";
6
- import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository, } from "./repositories/index.js";
6
+ import { EarliestAvailableSlotRepository } from "./repositories/earliestAvailableSlot.js";
7
+ import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerPreferencesRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository, } from "./repositories/index.js";
7
8
  export class BeaconDb {
8
9
  db;
9
10
  block;
@@ -16,8 +17,10 @@ export class BeaconDb {
16
17
  executionPayloadEnvelopeArchive;
17
18
  stateArchive;
18
19
  checkpointState;
20
+ earliestAvailableSlot;
19
21
  voluntaryExit;
20
22
  proposerSlashing;
23
+ proposerPreferences;
21
24
  attesterSlashing;
22
25
  blsToExecutionChange;
23
26
  // lightclient
@@ -41,9 +44,11 @@ export class BeaconDb {
41
44
  this.executionPayloadEnvelopeArchive = new ExecutionPayloadEnvelopeArchiveRepository(config, db);
42
45
  this.stateArchive = new StateArchiveRepository(config, db);
43
46
  this.checkpointState = new CheckpointStateRepository(config, db);
47
+ this.earliestAvailableSlot = new EarliestAvailableSlotRepository(db);
44
48
  this.voluntaryExit = new VoluntaryExitRepository(config, db);
45
49
  this.blsToExecutionChange = new BLSToExecutionChangeRepository(config, db);
46
50
  this.proposerSlashing = new ProposerSlashingRepository(config, db);
51
+ this.proposerPreferences = new ProposerPreferencesRepository(config, db);
47
52
  this.attesterSlashing = new AttesterSlashingRepository(config, db);
48
53
  // lightclient
49
54
  this.bestLightClientUpdate = new BestLightClientUpdateRepository(config, db);
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,9 @@ export declare enum Bucket {
33
33
  allForks_dataColumnSidecars = 57,// BeaconBlockRoot -> DataColumnSidecars
34
34
  allForks_dataColumnSidecarsArchive = 58,// BeaconBlockSlot -> DataColumnSidecars
35
35
  gloas_executionPayloadEnvelope = 59,// GLOAS BeaconBlockRoot -> SignedExecutionPayloadEnvelope
36
- gloas_executionPayloadEnvelopeArchive = 60
36
+ gloas_executionPayloadEnvelopeArchive = 60,// GLOAS Slot -> SignedExecutionPayloadEnvelope, or 0x00 + SignedExecutionPayloadHeaderEnvelope
37
+ earliestAvailableSlot = 61,// singleton -> Slot
38
+ gloas_proposerPreferences = 62
37
39
  }
38
40
  export declare function getBucketNameByValue<T extends Bucket>(enumValue: T): keyof typeof Bucket;
39
41
  //# sourceMappingURL=buckets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../src/db/buckets.ts"],"names":[],"mappings":"AACA,oBAAY,MAAM;IAGhB,qBAAqB,IAAI,CAAE,6BAA6B;IAExD,cAAc,IAAI,CAAE,mCAAmC;IAEvD,qBAAqB,IAAI,CAAE,mCAAmC;IAE9D,iCAAiC,IAAI,CAAE,sBAAsB;IAC7D,2BAA2B,IAAI,CAAE,eAAe;IAIhD,eAAe,IAAI,CAAE,4BAA4B;IAEjD,eAAe,IAAI,CAAE,0CAA0C;IAC/D,+HAA+H;IAC/H,eAAe,IAAI;IACnB,+HAA+H;IAC/H,qBAAqB,IAAI;IAKzB,+HAA+H;IAC/H,kBAAkB,KAAK;IACvB,WAAW,KAAK,CAAE,kCAAkC;IACpD,uBAAuB,KAAK,CAAE,qCAAqC;IACnE,yBAAyB,KAAK,CAAE,2BAA2B;IAC3D,4BAA4B,KAAK,CAAE,+CAA+C;IAElF,wBAAwB,KAAK,CAAE,sBAAsB;IAGrD,+HAA+H;IAC/H,mBAAmB,KAAK;IAExB,2BAA2B,KAAK,CAAE,qBAAqB;IAEvD,kBAAkB,KAAK,CAAE,wCAAwC;IACjE,yBAAyB,KAAK,CAAE,wCAAwC;IAExE,oHAAoH;IACpH,sBAAsB,KAAK;IAC3B,oHAAoH;IACpH,wCAAwC,KAAK;IAc7C,gCAAgC,KAAK,CAAE,oCAAoC;IAC3E,yBAAyB,KAAK,CAAE,qDAAqD;IAErF,4BAA4B,KAAK,CAAE,wCAAwC;IAG3E,iCAAiC,KAAK,CAAE,0CAA0C;IAElF,2BAA2B,KAAK,CAAE,wCAAwC;IAC1E,kCAAkC,KAAK,CAAE,wCAAwC;IAEjF,8BAA8B,KAAK,CAAE,0DAA0D;IAC/F,qCAAqC,KAAK;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,OAAO,MAAM,CAWxF"}
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../src/db/buckets.ts"],"names":[],"mappings":"AACA,oBAAY,MAAM;IAGhB,qBAAqB,IAAI,CAAE,6BAA6B;IAExD,cAAc,IAAI,CAAE,mCAAmC;IAEvD,qBAAqB,IAAI,CAAE,mCAAmC;IAE9D,iCAAiC,IAAI,CAAE,sBAAsB;IAC7D,2BAA2B,IAAI,CAAE,eAAe;IAIhD,eAAe,IAAI,CAAE,4BAA4B;IAEjD,eAAe,IAAI,CAAE,0CAA0C;IAC/D,+HAA+H;IAC/H,eAAe,IAAI;IACnB,+HAA+H;IAC/H,qBAAqB,IAAI;IAKzB,+HAA+H;IAC/H,kBAAkB,KAAK;IACvB,WAAW,KAAK,CAAE,kCAAkC;IACpD,uBAAuB,KAAK,CAAE,qCAAqC;IACnE,yBAAyB,KAAK,CAAE,2BAA2B;IAC3D,4BAA4B,KAAK,CAAE,+CAA+C;IAElF,wBAAwB,KAAK,CAAE,sBAAsB;IAGrD,+HAA+H;IAC/H,mBAAmB,KAAK;IAExB,2BAA2B,KAAK,CAAE,qBAAqB;IAEvD,kBAAkB,KAAK,CAAE,wCAAwC;IACjE,yBAAyB,KAAK,CAAE,wCAAwC;IAExE,oHAAoH;IACpH,sBAAsB,KAAK;IAC3B,oHAAoH;IACpH,wCAAwC,KAAK;IAc7C,gCAAgC,KAAK,CAAE,oCAAoC;IAC3E,yBAAyB,KAAK,CAAE,qDAAqD;IAErF,4BAA4B,KAAK,CAAE,wCAAwC;IAG3E,iCAAiC,KAAK,CAAE,0CAA0C;IAElF,2BAA2B,KAAK,CAAE,wCAAwC;IAC1E,kCAAkC,KAAK,CAAE,wCAAwC;IAEjF,8BAA8B,KAAK,CAAE,0DAA0D;IAC/F,qCAAqC,KAAK,CAAE,+FAA+F;IAC3I,qBAAqB,KAAK,CAAE,oBAAoB;IAChD,yBAAyB,KAAK;CAC/B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,OAAO,MAAM,CAWxF"}
package/lib/db/buckets.js CHANGED
@@ -63,6 +63,8 @@ export var Bucket;
63
63
  Bucket[Bucket["allForks_dataColumnSidecarsArchive"] = 58] = "allForks_dataColumnSidecarsArchive";
64
64
  Bucket[Bucket["gloas_executionPayloadEnvelope"] = 59] = "gloas_executionPayloadEnvelope";
65
65
  Bucket[Bucket["gloas_executionPayloadEnvelopeArchive"] = 60] = "gloas_executionPayloadEnvelopeArchive";
66
+ Bucket[Bucket["earliestAvailableSlot"] = 61] = "earliestAvailableSlot";
67
+ Bucket[Bucket["gloas_proposerPreferences"] = 62] = "gloas_proposerPreferences";
66
68
  })(Bucket || (Bucket = {}));
67
69
  export function getBucketNameByValue(enumValue) {
68
70
  const keys = Object.keys(Bucket).filter((x) => {
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../src/db/buckets.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,CAAN,IAAY,MAyEX;AAzED,WAAY,MAAM;IAChB,eAAe;IACf,mBAAmB;IACnB,qEAAyB,CAAA;IACzB,qBAAqB;IACrB,uDAAkB,CAAA;IAClB,mBAAmB;IACnB,qEAAyB,CAAA;IACzB,qCAAqC;IACrC,6FAAqC,CAAA;IACrC,iFAA+B,CAAA;IAC/B,kBAAkB;IAClB,mDAAmD;IACnD,kBAAkB;IAClB,yDAAmB,CAAA;IACnB,8CAA8C;IAC9C,yDAAmB,CAAA;IACnB,+HAA+H;IAC/H,yDAAmB,CAAA;IACnB,+HAA+H;IAC/H,qEAAyB,CAAA;IAEzB,UAAU;IACV,oDAAoD;IACpD,oFAAoF;IACpF,+HAA+H;IAC/H,gEAAuB,CAAA;IACvB,kDAAgB,CAAA;IAChB,0EAA4B,CAAA;IAC5B,8EAA8B,CAAA;IAC9B,oFAAiC,CAAA;IACjC,oBAAoB;IACpB,4EAA6B,CAAA;IAE7B,oFAAoF;IACpF,+HAA+H;IAC/H,kEAAwB,CAAA;IAExB,kFAAgC,CAAA;IAEhC,gEAAuB,CAAA;IACvB,8EAA8B,CAAA;IAE9B,oHAAoH;IACpH,wEAA2B,CAAA;IAC3B,oHAAoH;IACpH,4GAA6C,CAAA;IAE7C,qBAAqB;IACrB,qEAAqE;IACrE,8DAA8D;IAC9D,iEAAiE;IACjE,uEAAuE;IACvE,6DAA6D;IAC7D,sEAAsE;IACtE,4DAA4D;IAE5D,mDAAmD;IAEnD,2CAA2C;IAC3C,4FAAqC,CAAA;IACrC,8EAA8B,CAAA;IAC9B,yCAAyC;IACzC,oFAAiC,CAAA;IACjC,gEAAgE;IAChE,qGAAqG;IACrG,8FAAsC,CAAA;IAEtC,kFAAgC,CAAA;IAChC,gGAAuC,CAAA;IAEvC,wFAAmC,CAAA;IACnC,sGAA0C,CAAA;AAC5C,CAAC,EAzEW,MAAM,KAAN,MAAM,QAyEjB;AAED,MAAM,UAAU,oBAAoB,CAAmB,SAAY;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAA4B,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../src/db/buckets.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,CAAN,IAAY,MA2EX;AA3ED,WAAY,MAAM;IAChB,eAAe;IACf,mBAAmB;IACnB,qEAAyB,CAAA;IACzB,qBAAqB;IACrB,uDAAkB,CAAA;IAClB,mBAAmB;IACnB,qEAAyB,CAAA;IACzB,qCAAqC;IACrC,6FAAqC,CAAA;IACrC,iFAA+B,CAAA;IAC/B,kBAAkB;IAClB,mDAAmD;IACnD,kBAAkB;IAClB,yDAAmB,CAAA;IACnB,8CAA8C;IAC9C,yDAAmB,CAAA;IACnB,+HAA+H;IAC/H,yDAAmB,CAAA;IACnB,+HAA+H;IAC/H,qEAAyB,CAAA;IAEzB,UAAU;IACV,oDAAoD;IACpD,oFAAoF;IACpF,+HAA+H;IAC/H,gEAAuB,CAAA;IACvB,kDAAgB,CAAA;IAChB,0EAA4B,CAAA;IAC5B,8EAA8B,CAAA;IAC9B,oFAAiC,CAAA;IACjC,oBAAoB;IACpB,4EAA6B,CAAA;IAE7B,oFAAoF;IACpF,+HAA+H;IAC/H,kEAAwB,CAAA;IAExB,kFAAgC,CAAA;IAEhC,gEAAuB,CAAA;IACvB,8EAA8B,CAAA;IAE9B,oHAAoH;IACpH,wEAA2B,CAAA;IAC3B,oHAAoH;IACpH,4GAA6C,CAAA;IAE7C,qBAAqB;IACrB,qEAAqE;IACrE,8DAA8D;IAC9D,iEAAiE;IACjE,uEAAuE;IACvE,6DAA6D;IAC7D,sEAAsE;IACtE,4DAA4D;IAE5D,mDAAmD;IAEnD,2CAA2C;IAC3C,4FAAqC,CAAA;IACrC,8EAA8B,CAAA;IAC9B,yCAAyC;IACzC,oFAAiC,CAAA;IACjC,gEAAgE;IAChE,qGAAqG;IACrG,8FAAsC,CAAA;IAEtC,kFAAgC,CAAA;IAChC,gGAAuC,CAAA;IAEvC,wFAAmC,CAAA;IACnC,sGAA0C,CAAA;IAC1C,sEAA0B,CAAA;IAC1B,8EAA8B,CAAA;AAChC,CAAC,EA3EW,MAAM,KAAN,MAAM,QA2EjB;AAED,MAAM,UAAU,oBAAoB,CAAmB,SAAY;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAA4B,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;AAC3D,CAAC"}
@@ -3,7 +3,8 @@ import { Slot } from "@lodestar/types";
3
3
  import type { IDataColumnStore } from "./dataColumnStore.js";
4
4
  import type { FlatFileStoreMetrics } from "./flatFileStore/metrics.js";
5
5
  import { CheckpointStateRepository } from "./repositories/checkpointState.js";
6
- import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
6
+ import { EarliestAvailableSlotRepository } from "./repositories/earliestAvailableSlot.js";
7
+ import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerPreferencesRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
7
8
  /**
8
9
  * The DB service manages the data layer of the beacon chain
9
10
  * The exposed methods do not refer to the underlying data engine,
@@ -20,8 +21,10 @@ export interface IBeaconDb {
20
21
  executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
21
22
  stateArchive: StateArchiveRepository;
22
23
  checkpointState: CheckpointStateRepository;
24
+ earliestAvailableSlot: EarliestAvailableSlotRepository;
23
25
  voluntaryExit: VoluntaryExitRepository;
24
26
  proposerSlashing: ProposerSlashingRepository;
27
+ proposerPreferences: ProposerPreferencesRepository;
25
28
  attesterSlashing: AttesterSlashingRepository;
26
29
  blsToExecutionChange: BLSToExecutionChangeRepository;
27
30
  bestLightClientUpdate: BestLightClientUpdateRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/db/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,SAAS;IAExB,KAAK,EAAE,eAAe,CAAC;IAEvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAG3E,YAAY,EAAE,sBAAsB,CAAC;IAErC,eAAe,EAAE,yBAAyB,CAAC;IAG3C,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,uEAAuE;IACvE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;CACzG"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/db/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,SAAS;IAExB,KAAK,EAAE,eAAe,CAAC;IAEvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAG3E,YAAY,EAAE,sBAAsB,CAAC;IAErC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,qBAAqB,EAAE,+BAA+B,CAAC;IAGvD,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,uEAAuE;IACvE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;CACzG"}
@@ -1,8 +1,8 @@
1
1
  import { Db } from "@lodestar/db";
2
2
  import { ForkAll } from "@lodestar/params";
3
3
  import { Root, SSZTypesFor, SignedBeaconBlock, Slot } from "@lodestar/types";
4
- export declare const rootIndexBucketId: "allForks_attesterSlashing" | "allForks_block" | "allForks_blockArchive" | "allForks_checkpointState" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive" | "allForks_stateArchive" | "capella_blsToExecutionChange" | "deneb_blobSidecars" | "deneb_blobSidecarsArchive" | "gloas_executionPayloadEnvelope" | "gloas_executionPayloadEnvelopeArchive" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_chainInfo" | "index_depositDataRoot" | "index_mainChain" | "index_stateArchiveRootIndex" | "lightClient_bestLightClientUpdate" | "lightClient_checkpointHeader" | "lightClient_syncCommittee" | "lightClient_syncCommitteeWitness" | "phase0_depositData" | "phase0_depositEvent" | "phase0_eth1Data" | "phase0_exit" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "phase0_proposerSlashing";
5
- export declare const parentRootIndexBucketId: "allForks_attesterSlashing" | "allForks_block" | "allForks_blockArchive" | "allForks_checkpointState" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive" | "allForks_stateArchive" | "capella_blsToExecutionChange" | "deneb_blobSidecars" | "deneb_blobSidecarsArchive" | "gloas_executionPayloadEnvelope" | "gloas_executionPayloadEnvelopeArchive" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_chainInfo" | "index_depositDataRoot" | "index_mainChain" | "index_stateArchiveRootIndex" | "lightClient_bestLightClientUpdate" | "lightClient_checkpointHeader" | "lightClient_syncCommittee" | "lightClient_syncCommitteeWitness" | "phase0_depositData" | "phase0_depositEvent" | "phase0_eth1Data" | "phase0_exit" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "phase0_proposerSlashing";
4
+ export declare const rootIndexBucketId: "allForks_attesterSlashing" | "allForks_block" | "allForks_blockArchive" | "allForks_checkpointState" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive" | "allForks_stateArchive" | "capella_blsToExecutionChange" | "deneb_blobSidecars" | "deneb_blobSidecarsArchive" | "earliestAvailableSlot" | "gloas_executionPayloadEnvelope" | "gloas_executionPayloadEnvelopeArchive" | "gloas_proposerPreferences" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_chainInfo" | "index_depositDataRoot" | "index_mainChain" | "index_stateArchiveRootIndex" | "lightClient_bestLightClientUpdate" | "lightClient_checkpointHeader" | "lightClient_syncCommittee" | "lightClient_syncCommitteeWitness" | "phase0_depositData" | "phase0_depositEvent" | "phase0_eth1Data" | "phase0_exit" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "phase0_proposerSlashing";
5
+ export declare const parentRootIndexBucketId: "allForks_attesterSlashing" | "allForks_block" | "allForks_blockArchive" | "allForks_checkpointState" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive" | "allForks_stateArchive" | "capella_blsToExecutionChange" | "deneb_blobSidecars" | "deneb_blobSidecarsArchive" | "earliestAvailableSlot" | "gloas_executionPayloadEnvelope" | "gloas_executionPayloadEnvelopeArchive" | "gloas_proposerPreferences" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_chainInfo" | "index_depositDataRoot" | "index_mainChain" | "index_stateArchiveRootIndex" | "lightClient_bestLightClientUpdate" | "lightClient_checkpointHeader" | "lightClient_syncCommittee" | "lightClient_syncCommitteeWitness" | "phase0_depositData" | "phase0_depositEvent" | "phase0_eth1Data" | "phase0_exit" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "phase0_proposerSlashing";
6
6
  export declare function getRootIndex(db: Db, blockRoot: Root): Promise<Uint8Array | null>;
7
7
  export declare function getParentRootIndex(db: Db, parentRoot: Root): Promise<Uint8Array | null>;
8
8
  export declare function deleteRootIndex(db: Db, signedBeaconBlockType: SSZTypesFor<ForkAll, "SignedBeaconBlock">, block: SignedBeaconBlock): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"blockArchiveIndex.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/blockArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAGhF,eAAO,MAAM,iBAAiB,o1BAA2D,CAAC;AAC1F,eAAO,MAAM,uBAAuB,o1BAAiE,CAAC;AAEtG,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAEtF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE7F;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,WAAW,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAChE,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,UAAU,CAElE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAEtD"}
1
+ {"version":3,"file":"blockArchiveIndex.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/blockArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAGhF,eAAO,MAAM,iBAAiB,44BAA2D,CAAC;AAC1F,eAAO,MAAM,uBAAuB,44BAAiE,CAAC;AAEtG,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAEtF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE7F;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,WAAW,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAChE,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,IAAI,GAAG,UAAU,CAElE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAEtD"}
@@ -0,0 +1,11 @@
1
+ import { Db } from "@lodestar/db";
2
+ import { Slot } from "@lodestar/types";
3
+ export declare class EarliestAvailableSlotRepository {
4
+ private readonly db;
5
+ private readonly key;
6
+ private readonly opts;
7
+ constructor(db: Db);
8
+ get(): Promise<Slot | null>;
9
+ set(slot: Slot): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=earliestAvailableSlot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"earliestAvailableSlot.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/earliestAvailableSlot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAG1C,qBAAa,+BAA+B;IAI9B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAH/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA8C;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkE;IAEvF,YAA6B,EAAE,EAAE,EAAE,EAAI;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAGhC;IAEK,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { encodeKey } from "@lodestar/db";
2
+ import { ssz } from "@lodestar/types";
3
+ import { Bucket, getBucketNameByValue } from "../buckets.js";
4
+ export class EarliestAvailableSlotRepository {
5
+ db;
6
+ key = encodeKey(Bucket.earliestAvailableSlot, 0);
7
+ opts = { bucketId: getBucketNameByValue(Bucket.earliestAvailableSlot) };
8
+ constructor(db) {
9
+ this.db = db;
10
+ }
11
+ async get() {
12
+ const bytes = await this.db.get(this.key, this.opts);
13
+ return bytes === null ? null : ssz.Slot.deserialize(bytes);
14
+ }
15
+ async set(slot) {
16
+ await this.db.put(this.key, ssz.Slot.serialize(slot), this.opts);
17
+ }
18
+ }
19
+ //# sourceMappingURL=earliestAvailableSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"earliestAvailableSlot.js","sourceRoot":"","sources":["../../../src/db/repositories/earliestAvailableSlot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAO,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,+BAA+B;IAIb,EAAE;IAHd,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAC,CAAC;IAEvF,YAA6B,EAAM;kBAAN,EAAE;IAAO,CAAC;IAEvC,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAU;QAClB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -13,6 +13,7 @@ export { BestLightClientUpdateRepository } from "./lightclientBestUpdate.js";
13
13
  export { CheckpointHeaderRepository } from "./lightclientCheckpointHeader.js";
14
14
  export { SyncCommitteeRepository } from "./lightclientSyncCommittee.js";
15
15
  export { SyncCommitteeWitnessRepository } from "./lightclientSyncCommitteeWitness.js";
16
+ export { ProposerPreferencesRepository } from "./proposerPreferences.js";
16
17
  export { ProposerSlashingRepository } from "./proposerSlashing.js";
17
18
  export { StateArchiveRepository } from "./stateArchive.js";
18
19
  export { VoluntaryExitRepository } from "./voluntaryExit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAC,8BAA8B,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACL,KAAK,gBAAgB,EACrB,yCAAyC,EACzC,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAC,8BAA8B,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACL,KAAK,gBAAgB,EACrB,yCAAyC,EACzC,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC"}
@@ -12,6 +12,7 @@ export { BestLightClientUpdateRepository } from "./lightclientBestUpdate.js";
12
12
  export { CheckpointHeaderRepository } from "./lightclientCheckpointHeader.js";
13
13
  export { SyncCommitteeRepository } from "./lightclientSyncCommittee.js";
14
14
  export { SyncCommitteeWitnessRepository } from "./lightclientSyncCommitteeWitness.js";
15
+ export { ProposerPreferencesRepository } from "./proposerPreferences.js";
15
16
  export { ProposerSlashingRepository } from "./proposerSlashing.js";
16
17
  export { StateArchiveRepository } from "./stateArchive.js";
17
18
  export { VoluntaryExitRepository } from "./voluntaryExit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAEL,yCAAyC,EACzC,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAEL,yCAAyC,EACzC,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ChainForkConfig } from "@lodestar/config";
2
+ import { Db, Repository } from "@lodestar/db";
3
+ import { gloas } from "@lodestar/types";
4
+ /**
5
+ * SignedProposerPreferences indexed by proposal slot and dependent root
6
+ *
7
+ * Added via gossip or api
8
+ * Removed once the proposal slot has passed
9
+ */
10
+ export declare class ProposerPreferencesRepository extends Repository<Uint8Array, gloas.SignedProposerPreferences> {
11
+ constructor(config: ChainForkConfig, db: Db);
12
+ getId(value: gloas.SignedProposerPreferences): Uint8Array;
13
+ }
14
+ //# sourceMappingURL=proposerPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAI3C;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACxG,YAAY,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,EAG1C;IAED,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAGxD;CACF"}
@@ -0,0 +1,21 @@
1
+ import { Repository } from "@lodestar/db";
2
+ import { ssz } from "@lodestar/types";
3
+ import { intToBytes } from "@lodestar/utils";
4
+ import { Bucket, getBucketNameByValue } from "../buckets.js";
5
+ /**
6
+ * SignedProposerPreferences indexed by proposal slot and dependent root
7
+ *
8
+ * Added via gossip or api
9
+ * Removed once the proposal slot has passed
10
+ */
11
+ export class ProposerPreferencesRepository extends Repository {
12
+ constructor(config, db) {
13
+ const bucket = Bucket.gloas_proposerPreferences;
14
+ super(config, db, bucket, ssz.gloas.SignedProposerPreferences, getBucketNameByValue(bucket));
15
+ }
16
+ getId(value) {
17
+ const { proposalSlot, dependentRoot } = value.message;
18
+ return Buffer.concat([intToBytes(proposalSlot, 8, "be"), dependentRoot]);
19
+ }
20
+ }
21
+ //# sourceMappingURL=proposerPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposerPreferences.js","sourceRoot":"","sources":["../../../src/db/repositories/proposerPreferences.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,OAAO,6BAA8B,SAAQ,UAAuD;IACxG,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAChD,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,KAAsC;QAC1C,MAAM,EAAC,YAAY,EAAE,aAAa,EAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF"}