@lodestar/beacon-node 1.39.0-dev.d4a47659a5 → 1.39.0-dev.f4236afdba

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 (246) hide show
  1. package/lib/api/impl/beacon/blocks/utils.js +1 -1
  2. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  3. package/lib/chain/chain.d.ts +1 -4
  4. package/lib/chain/chain.d.ts.map +1 -1
  5. package/lib/chain/chain.js +2 -12
  6. package/lib/chain/chain.js.map +1 -1
  7. package/lib/chain/initState.d.ts +1 -14
  8. package/lib/chain/initState.d.ts.map +1 -1
  9. package/lib/chain/initState.js +1 -62
  10. package/lib/chain/initState.js.map +1 -1
  11. package/lib/chain/interface.d.ts +0 -2
  12. package/lib/chain/interface.d.ts.map +1 -1
  13. package/lib/chain/interface.js.map +1 -1
  14. package/lib/chain/prepareNextSlot.d.ts +0 -4
  15. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  16. package/lib/chain/prepareNextSlot.js +1 -21
  17. package/lib/chain/prepareNextSlot.js.map +1 -1
  18. package/lib/chain/produceBlock/produceBlockBody.d.ts +0 -1
  19. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  20. package/lib/chain/produceBlock/produceBlockBody.js +6 -9
  21. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  22. package/lib/db/beacon.d.ts +3 -7
  23. package/lib/db/beacon.d.ts.map +1 -1
  24. package/lib/db/beacon.js +33 -12
  25. package/lib/db/beacon.js.map +1 -1
  26. package/lib/db/buckets.d.ts +12 -6
  27. package/lib/db/buckets.d.ts.map +1 -1
  28. package/lib/db/buckets.js +6 -1
  29. package/lib/db/buckets.js.map +1 -1
  30. package/lib/db/interface.d.ts +2 -7
  31. package/lib/db/interface.d.ts.map +1 -1
  32. package/lib/db/repositories/index.d.ts +0 -3
  33. package/lib/db/repositories/index.d.ts.map +1 -1
  34. package/lib/db/repositories/index.js +0 -3
  35. package/lib/db/repositories/index.js.map +1 -1
  36. package/lib/execution/engine/http.d.ts +1 -1
  37. package/lib/execution/engine/http.d.ts.map +1 -1
  38. package/lib/execution/engine/http.js +2 -3
  39. package/lib/execution/engine/http.js.map +1 -1
  40. package/lib/execution/engine/index.d.ts.map +1 -1
  41. package/lib/execution/engine/index.js +1 -1
  42. package/lib/execution/engine/index.js.map +1 -1
  43. package/lib/execution/engine/interface.d.ts +1 -1
  44. package/lib/execution/engine/interface.d.ts.map +1 -1
  45. package/lib/execution/engine/interface.js.map +1 -1
  46. package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.d.ts +1 -1
  47. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -0
  48. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -0
  49. package/lib/execution/engine/jwt.d.ts.map +1 -0
  50. package/lib/execution/engine/jwt.js.map +1 -0
  51. package/lib/execution/engine/mock.d.ts.map +1 -1
  52. package/lib/execution/engine/mock.js +1 -1
  53. package/lib/execution/engine/mock.js.map +1 -1
  54. package/lib/execution/engine/payloadIdCache.d.ts +1 -1
  55. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  56. package/lib/execution/engine/types.d.ts +1 -1
  57. package/lib/execution/engine/types.d.ts.map +1 -1
  58. package/lib/execution/engine/types.js +1 -1
  59. package/lib/execution/engine/types.js.map +1 -1
  60. package/lib/execution/engine/utils.d.ts +64 -2
  61. package/lib/execution/engine/utils.d.ts.map +1 -1
  62. package/lib/execution/engine/utils.js +91 -2
  63. package/lib/execution/engine/utils.js.map +1 -1
  64. package/lib/index.d.ts +1 -2
  65. package/lib/index.d.ts.map +1 -1
  66. package/lib/index.js +1 -2
  67. package/lib/index.js.map +1 -1
  68. package/lib/metrics/metrics/lodestar.d.ts +0 -35
  69. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  70. package/lib/metrics/metrics/lodestar.js +0 -90
  71. package/lib/metrics/metrics/lodestar.js.map +1 -1
  72. package/lib/node/nodejs.d.ts.map +1 -1
  73. package/lib/node/nodejs.js +10 -9
  74. package/lib/node/nodejs.js.map +1 -1
  75. package/lib/node/options.d.ts +0 -2
  76. package/lib/node/options.d.ts.map +1 -1
  77. package/lib/node/options.js +0 -2
  78. package/lib/node/options.js.map +1 -1
  79. package/lib/node/utils/interop/deposits.d.ts +2 -1
  80. package/lib/node/utils/interop/deposits.d.ts.map +1 -1
  81. package/lib/node/utils/interop/deposits.js.map +1 -1
  82. package/lib/node/utils/interop/state.d.ts +1 -1
  83. package/lib/node/utils/interop/state.d.ts.map +1 -1
  84. package/lib/node/utils/state.d.ts +1 -7
  85. package/lib/node/utils/state.d.ts.map +1 -1
  86. package/lib/node/utils/state.js +1 -14
  87. package/lib/node/utils/state.js.map +1 -1
  88. package/package.json +14 -20
  89. package/src/api/impl/beacon/blocks/utils.ts +1 -1
  90. package/src/chain/chain.ts +1 -15
  91. package/src/chain/initState.ts +1 -97
  92. package/src/chain/interface.ts +0 -2
  93. package/src/chain/prepareNextSlot.ts +1 -28
  94. package/src/chain/produceBlock/produceBlockBody.ts +6 -10
  95. package/src/db/beacon.ts +38 -16
  96. package/src/db/buckets.ts +12 -7
  97. package/src/db/interface.ts +2 -13
  98. package/src/db/repositories/index.ts +0 -3
  99. package/src/execution/engine/http.ts +8 -9
  100. package/src/execution/engine/index.ts +1 -1
  101. package/src/execution/engine/interface.ts +1 -1
  102. package/src/{eth1/provider → execution/engine}/jsonRpcHttpClient.ts +1 -1
  103. package/src/execution/engine/mock.ts +1 -2
  104. package/src/execution/engine/payloadIdCache.ts +1 -1
  105. package/src/execution/engine/types.ts +9 -9
  106. package/src/execution/engine/utils.ts +111 -5
  107. package/src/index.ts +1 -2
  108. package/src/metrics/metrics/lodestar.ts +0 -92
  109. package/src/node/nodejs.ts +11 -9
  110. package/src/node/options.ts +0 -3
  111. package/src/node/utils/interop/deposits.ts +3 -1
  112. package/src/node/utils/interop/state.ts +1 -1
  113. package/src/node/utils/state.ts +3 -18
  114. package/lib/chain/genesis/genesis.d.ts +0 -51
  115. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  116. package/lib/chain/genesis/genesis.js +0 -123
  117. package/lib/chain/genesis/genesis.js.map +0 -1
  118. package/lib/chain/genesis/interface.d.ts +0 -13
  119. package/lib/chain/genesis/interface.d.ts.map +0 -1
  120. package/lib/chain/genesis/interface.js +0 -2
  121. package/lib/chain/genesis/interface.js.map +0 -1
  122. package/lib/db/repositories/depositDataRoot.d.ts +0 -22
  123. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  124. package/lib/db/repositories/depositDataRoot.js +0 -62
  125. package/lib/db/repositories/depositDataRoot.js.map +0 -1
  126. package/lib/db/repositories/depositEvent.d.ts +0 -13
  127. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  128. package/lib/db/repositories/depositEvent.js +0 -27
  129. package/lib/db/repositories/depositEvent.js.map +0 -1
  130. package/lib/db/repositories/eth1Data.d.ts +0 -13
  131. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  132. package/lib/db/repositories/eth1Data.js +0 -26
  133. package/lib/db/repositories/eth1Data.js.map +0 -1
  134. package/lib/db/single/index.d.ts +0 -3
  135. package/lib/db/single/index.d.ts.map +0 -1
  136. package/lib/db/single/index.js +0 -3
  137. package/lib/db/single/index.js.map +0 -1
  138. package/lib/db/single/preGenesisState.d.ts +0 -16
  139. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  140. package/lib/db/single/preGenesisState.js +0 -29
  141. package/lib/db/single/preGenesisState.js.map +0 -1
  142. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +0 -14
  143. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  144. package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -27
  145. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +0 -1
  146. package/lib/eth1/errors.d.ts +0 -66
  147. package/lib/eth1/errors.d.ts.map +0 -1
  148. package/lib/eth1/errors.js +0 -27
  149. package/lib/eth1/errors.js.map +0 -1
  150. package/lib/eth1/eth1DataCache.d.ts +0 -19
  151. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  152. package/lib/eth1/eth1DataCache.js +0 -19
  153. package/lib/eth1/eth1DataCache.js.map +0 -1
  154. package/lib/eth1/eth1DepositDataTracker.d.ts +0 -80
  155. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  156. package/lib/eth1/eth1DepositDataTracker.js +0 -317
  157. package/lib/eth1/eth1DepositDataTracker.js.map +0 -1
  158. package/lib/eth1/eth1DepositsCache.d.ts +0 -42
  159. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  160. package/lib/eth1/eth1DepositsCache.js +0 -119
  161. package/lib/eth1/eth1DepositsCache.js.map +0 -1
  162. package/lib/eth1/index.d.ts +0 -31
  163. package/lib/eth1/index.d.ts.map +0 -1
  164. package/lib/eth1/index.js +0 -71
  165. package/lib/eth1/index.js.map +0 -1
  166. package/lib/eth1/interface.d.ts +0 -74
  167. package/lib/eth1/interface.d.ts.map +0 -1
  168. package/lib/eth1/interface.js +0 -8
  169. package/lib/eth1/interface.js.map +0 -1
  170. package/lib/eth1/options.d.ts +0 -22
  171. package/lib/eth1/options.d.ts.map +0 -1
  172. package/lib/eth1/options.js +0 -8
  173. package/lib/eth1/options.js.map +0 -1
  174. package/lib/eth1/provider/eth1Provider.d.ts +0 -39
  175. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  176. package/lib/eth1/provider/eth1Provider.js +0 -147
  177. package/lib/eth1/provider/eth1Provider.js.map +0 -1
  178. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  179. package/lib/eth1/provider/jsonRpcHttpClient.js.map +0 -1
  180. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  181. package/lib/eth1/provider/jwt.js.map +0 -1
  182. package/lib/eth1/provider/utils.d.ts +0 -65
  183. package/lib/eth1/provider/utils.d.ts.map +0 -1
  184. package/lib/eth1/provider/utils.js +0 -120
  185. package/lib/eth1/provider/utils.js.map +0 -1
  186. package/lib/eth1/stream.d.ts +0 -15
  187. package/lib/eth1/stream.d.ts.map +0 -1
  188. package/lib/eth1/stream.js +0 -54
  189. package/lib/eth1/stream.js.map +0 -1
  190. package/lib/eth1/utils/depositContract.d.ts +0 -14
  191. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  192. package/lib/eth1/utils/depositContract.js +0 -33
  193. package/lib/eth1/utils/depositContract.js.map +0 -1
  194. package/lib/eth1/utils/deposits.d.ts +0 -8
  195. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  196. package/lib/eth1/utils/deposits.js +0 -47
  197. package/lib/eth1/utils/deposits.js.map +0 -1
  198. package/lib/eth1/utils/eth1Data.d.ts +0 -22
  199. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  200. package/lib/eth1/utils/eth1Data.js +0 -77
  201. package/lib/eth1/utils/eth1Data.js.map +0 -1
  202. package/lib/eth1/utils/eth1DepositEvent.d.ts +0 -7
  203. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  204. package/lib/eth1/utils/eth1DepositEvent.js +0 -13
  205. package/lib/eth1/utils/eth1DepositEvent.js.map +0 -1
  206. package/lib/eth1/utils/eth1Vote.d.ts +0 -17
  207. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  208. package/lib/eth1/utils/eth1Vote.js +0 -111
  209. package/lib/eth1/utils/eth1Vote.js.map +0 -1
  210. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts +0 -9
  211. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  212. package/lib/eth1/utils/groupDepositEventsByBlock.js +0 -17
  213. package/lib/eth1/utils/groupDepositEventsByBlock.js.map +0 -1
  214. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts +0 -10
  215. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  216. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js +0 -14
  217. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js.map +0 -1
  218. package/src/chain/genesis/genesis.ts +0 -190
  219. package/src/chain/genesis/interface.ts +0 -14
  220. package/src/db/repositories/depositDataRoot.ts +0 -80
  221. package/src/db/repositories/depositEvent.ts +0 -32
  222. package/src/db/repositories/eth1Data.ts +0 -33
  223. package/src/db/single/index.ts +0 -2
  224. package/src/db/single/preGenesisState.ts +0 -37
  225. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  226. package/src/eth1/errors.ts +0 -40
  227. package/src/eth1/eth1DataCache.ts +0 -26
  228. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  229. package/src/eth1/eth1DepositsCache.ts +0 -141
  230. package/src/eth1/index.ts +0 -94
  231. package/src/eth1/interface.ts +0 -87
  232. package/src/eth1/options.ts +0 -28
  233. package/src/eth1/provider/eth1Provider.ts +0 -229
  234. package/src/eth1/provider/utils.ts +0 -136
  235. package/src/eth1/stream.ts +0 -75
  236. package/src/eth1/utils/depositContract.ts +0 -37
  237. package/src/eth1/utils/deposits.ts +0 -70
  238. package/src/eth1/utils/eth1Data.ts +0 -100
  239. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  240. package/src/eth1/utils/eth1Vote.ts +0 -142
  241. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  242. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  243. /package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.js +0 -0
  244. /package/lib/{eth1/provider → execution/engine}/jwt.d.ts +0 -0
  245. /package/lib/{eth1/provider → execution/engine}/jwt.js +0 -0
  246. /package/src/{eth1/provider → execution/engine}/jwt.ts +0 -0
@@ -1,22 +0,0 @@
1
- import { ByteVectorType, CompositeViewDU, ListCompositeType } from "@chainsafe/ssz";
2
- import { ChainForkConfig } from "@lodestar/config";
3
- import { Db, KeyValue, Repository } from "@lodestar/db";
4
- import { Root } from "@lodestar/types";
5
- export type DepositTree = CompositeViewDU<ListCompositeType<ByteVectorType>>;
6
- export declare class DepositDataRootRepository extends Repository<number, Root> {
7
- private depositRootTree?;
8
- constructor(config: ChainForkConfig, db: Db);
9
- decodeKey(data: Buffer): number;
10
- getId(_value: Root): number;
11
- put(index: number, value: Root): Promise<void>;
12
- batchPut(items: KeyValue<number, Root>[]): Promise<void>;
13
- putList(roots: Root[]): Promise<void>;
14
- batchPutValues(values: {
15
- index: number;
16
- root: Root;
17
- }[]): Promise<void>;
18
- getDepositRootTree(): Promise<DepositTree>;
19
- getDepositRootTreeAtIndex(depositIndex: number): Promise<DepositTree>;
20
- private depositRootTreeSet;
21
- }
22
- //# sourceMappingURL=depositDataRoot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositDataRoot.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/depositDataRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAK1C,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;AAE7E,qBAAa,yBAA0B,SAAQ,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;IACrE,OAAO,CAAC,eAAe,CAAC,CAAc;gBAE1B,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAK3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK/B,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM;IAIrB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,cAAc,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ1C,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAK7D,kBAAkB;CAcjC"}
@@ -1,62 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { bytesToInt } from "@lodestar/utils";
4
- import { Bucket, getBucketNameByValue } from "../buckets.js";
5
- export class DepositDataRootRepository extends Repository {
6
- depositRootTree;
7
- constructor(config, db) {
8
- const bucket = Bucket.index_depositDataRoot;
9
- super(config, db, bucket, ssz.Root, getBucketNameByValue(bucket));
10
- }
11
- decodeKey(data) {
12
- return bytesToInt(super.decodeKey(data), "be");
13
- }
14
- // depositDataRoots stored by depositData index
15
- getId(_value) {
16
- throw new Error("Unable to create depositIndex from root");
17
- }
18
- async put(index, value) {
19
- await super.put(index, value);
20
- await this.depositRootTreeSet(index, value);
21
- }
22
- async batchPut(items) {
23
- await super.batchPut(items);
24
- for (const { key, value } of items) {
25
- await this.depositRootTreeSet(key, value);
26
- }
27
- }
28
- async putList(roots) {
29
- await this.batchPut(roots.map((root, index) => ({ key: index, value: root })));
30
- }
31
- async batchPutValues(values) {
32
- await this.batchPut(values.map(({ index, root }) => ({
33
- key: index,
34
- value: root,
35
- })));
36
- }
37
- async getDepositRootTree() {
38
- if (!this.depositRootTree) {
39
- const values = await this.values();
40
- this.depositRootTree = ssz.phase0.DepositDataRootList.toViewDU(values);
41
- }
42
- return this.depositRootTree;
43
- }
44
- async getDepositRootTreeAtIndex(depositIndex) {
45
- const depositRootTree = await this.getDepositRootTree();
46
- return depositRootTree.sliceTo(depositIndex);
47
- }
48
- async depositRootTreeSet(index, value) {
49
- const depositRootTree = await this.getDepositRootTree();
50
- // TODO: Review and fix properly
51
- if (index > depositRootTree.length) {
52
- throw Error(`Error setting depositRootTree index ${index} > length ${depositRootTree.length}`);
53
- }
54
- if (index === depositRootTree.length) {
55
- depositRootTree.push(value);
56
- }
57
- else {
58
- depositRootTree.set(index, value);
59
- }
60
- }
61
- }
62
- //# sourceMappingURL=depositDataRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositDataRoot.js","sourceRoot":"","sources":["../../../src/db/repositories/depositDataRoot.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db, Repository } from "@lodestar/db";
3
- import { phase0 } from "@lodestar/types";
4
- /**
5
- * DepositData indexed by deposit index
6
- * Removed when included on chain or old
7
- */
8
- export declare class DepositEventRepository extends Repository<number, phase0.DepositEvent> {
9
- constructor(config: ChainForkConfig, db: Db);
10
- deleteOld(depositCount: number): Promise<void>;
11
- batchPutValues(depositEvents: phase0.DepositEvent[]): Promise<void>;
12
- }
13
- //# sourceMappingURL=depositEvent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositEvent.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/depositEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAG5C;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;gBACrE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAKrC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ1E"}
@@ -1,27 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { Bucket, getBucketNameByValue } from "../buckets.js";
4
- /**
5
- * DepositData indexed by deposit index
6
- * Removed when included on chain or old
7
- */
8
- export class DepositEventRepository extends Repository {
9
- constructor(config, db) {
10
- const bucket = Bucket.phase0_depositEvent;
11
- super(config, db, bucket, ssz.phase0.DepositEvent, getBucketNameByValue(bucket));
12
- }
13
- async deleteOld(depositCount) {
14
- const firstDepositIndex = await this.firstKey();
15
- if (firstDepositIndex === null) {
16
- return;
17
- }
18
- await this.batchDelete(Array.from({ length: depositCount - firstDepositIndex }, (_, i) => i + firstDepositIndex));
19
- }
20
- async batchPutValues(depositEvents) {
21
- await this.batchPut(depositEvents.map((depositEvent) => ({
22
- key: depositEvent.index,
23
- value: depositEvent,
24
- })));
25
- }
26
- }
27
- //# sourceMappingURL=depositEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositEvent.js","sourceRoot":"","sources":["../../../src/db/repositories/depositEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,UAAuC;IACjF,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC1C,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAoC;QACvD,MAAM,IAAI,CAAC,QAAQ,CACjB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,EAAE,YAAY,CAAC,KAAK;YACvB,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db, Repository } from "@lodestar/db";
3
- import { phase0 } from "@lodestar/types";
4
- export declare class Eth1DataRepository extends Repository<number, phase0.Eth1DataOrdered> {
5
- constructor(config: ChainForkConfig, db: Db);
6
- decodeKey(data: Buffer): number;
7
- getId(_value: phase0.Eth1Data): number;
8
- batchPutValues(eth1Datas: (phase0.Eth1DataOrdered & {
9
- timestamp: number;
10
- })[]): Promise<void>;
11
- deleteOld(timestamp: number): Promise<void>;
12
- }
13
- //# sourceMappingURL=eth1Data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1Data.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/eth1Data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAI5C,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;gBACpE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAK3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM;IAIhC,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD"}
@@ -1,26 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { bytesToInt } from "@lodestar/utils";
4
- import { Bucket, getBucketNameByValue } from "../buckets.js";
5
- export class Eth1DataRepository extends Repository {
6
- constructor(config, db) {
7
- const bucket = Bucket.phase0_eth1Data;
8
- super(config, db, bucket, ssz.phase0.Eth1DataOrdered, getBucketNameByValue(bucket));
9
- }
10
- decodeKey(data) {
11
- return bytesToInt(super.decodeKey(data), "be");
12
- }
13
- getId(_value) {
14
- throw new Error("Unable to create timestamp from block hash");
15
- }
16
- async batchPutValues(eth1Datas) {
17
- await this.batchPut(eth1Datas.map((eth1Data) => ({
18
- key: eth1Data.timestamp,
19
- value: eth1Data,
20
- })));
21
- }
22
- async deleteOld(timestamp) {
23
- await this.batchDelete(await this.keys({ lt: timestamp }));
24
- }
25
- }
26
- //# sourceMappingURL=eth1Data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1Data.js","sourceRoot":"","sources":["../../../src/db/repositories/eth1Data.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,kBAAmB,SAAQ,UAA0C;IAChF,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;QACtC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAA0B,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,MAAuB;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAA2D;QAC9E,MAAM,IAAI,CAAC,QAAQ,CACjB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,EAAE,QAAQ,CAAC,SAAS;YACvB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- export { PreGenesisState } from "./preGenesisState.js";
2
- export { PreGenesisStateLastProcessedBlock } from "./preGenesisStateLastProcessedBlock.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/single/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,iCAAiC,EAAC,MAAM,wCAAwC,CAAC"}
@@ -1,3 +0,0 @@
1
- export { PreGenesisState } from "./preGenesisState.js";
2
- export { PreGenesisStateLastProcessedBlock } from "./preGenesisStateLastProcessedBlock.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/single/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,iCAAiC,EAAC,MAAM,wCAAwC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db } from "@lodestar/db";
3
- import { BeaconStateAllForks } from "@lodestar/state-transition";
4
- export declare class PreGenesisState {
5
- private readonly config;
6
- private readonly bucket;
7
- private readonly db;
8
- private readonly key;
9
- private readonly type;
10
- private readonly dbReqOpts;
11
- constructor(config: ChainForkConfig, db: Db);
12
- put(value: BeaconStateAllForks): Promise<void>;
13
- get(): Promise<BeaconStateAllForks | null>;
14
- delete(): Promise<void>;
15
- }
16
- //# sourceMappingURL=preGenesisState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisState.d.ts","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,4BAA4B,CAAC;AAI/D,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IASrC,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,GAAG,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAK1C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,29 +0,0 @@
1
- import { GENESIS_SLOT } from "@lodestar/params";
2
- import { Bucket, getBucketNameByValue } from "../buckets.js";
3
- export class PreGenesisState {
4
- config;
5
- bucket;
6
- db;
7
- key;
8
- type;
9
- dbReqOpts;
10
- constructor(config, db) {
11
- this.config = config;
12
- this.db = db;
13
- this.bucket = Bucket.phase0_preGenesisState;
14
- this.key = new Uint8Array([this.bucket]);
15
- this.type = this.config.getForkTypes(GENESIS_SLOT).BeaconState;
16
- this.dbReqOpts = { bucketId: getBucketNameByValue(this.bucket) };
17
- }
18
- async put(value) {
19
- await this.db.put(this.key, value.serialize(), this.dbReqOpts);
20
- }
21
- async get() {
22
- const value = await this.db.get(this.key, this.dbReqOpts);
23
- return value ? this.type.deserializeToViewDU(value) : null;
24
- }
25
- async delete() {
26
- await this.db.delete(this.key, this.dbReqOpts);
27
- }
28
- }
29
- //# sourceMappingURL=preGenesisState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisState.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,eAAe;IACT,MAAM,CAAkB;IACxB,MAAM,CAAS;IACf,EAAE,CAAK;IACP,GAAG,CAAa;IAChB,IAAI,CAAsC;IAC1C,SAAS,CAAY;IAEtC,YAAY,MAAuB,EAAE,EAAM;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA0B;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -1,14 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db } from "@lodestar/db";
3
- export declare class PreGenesisStateLastProcessedBlock {
4
- private readonly bucket;
5
- private readonly type;
6
- private readonly db;
7
- private readonly key;
8
- private readonly dbReqOpts;
9
- constructor(_config: ChainForkConfig, db: Db);
10
- put(value: number): Promise<void>;
11
- get(): Promise<number | null>;
12
- delete(): Promise<void>;
13
- }
14
- //# sourceMappingURL=preGenesisStateLastProcessedBlock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisStateLastProcessedBlock.d.ts","sourceRoot":"","sources":["../../../src/db/single/preGenesisStateLastProcessedBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAI3C,qBAAa,iCAAiC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAQtC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,27 +0,0 @@
1
- import { ssz } from "@lodestar/types";
2
- import { Bucket, getBucketNameByValue } from "../buckets.js";
3
- export class PreGenesisStateLastProcessedBlock {
4
- bucket;
5
- type;
6
- db;
7
- key;
8
- dbReqOpts;
9
- constructor(_config, db) {
10
- this.db = db;
11
- this.type = ssz.UintNum64;
12
- this.bucket = Bucket.phase0_preGenesisStateLastProcessedBlock;
13
- this.key = new Uint8Array([this.bucket]);
14
- this.dbReqOpts = { bucketId: getBucketNameByValue(this.bucket) };
15
- }
16
- async put(value) {
17
- await this.db.put(this.key, this.type.serialize(value), this.dbReqOpts);
18
- }
19
- async get() {
20
- const value = await this.db.get(this.key, this.dbReqOpts);
21
- return value ? this.type.deserialize(value) : null;
22
- }
23
- async delete() {
24
- await this.db.delete(this.key, this.dbReqOpts);
25
- }
26
- }
27
- //# sourceMappingURL=preGenesisStateLastProcessedBlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisStateLastProcessedBlock.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisStateLastProcessedBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,iCAAiC;IAC3B,MAAM,CAAS;IACf,IAAI,CAAiB;IACrB,EAAE,CAAK;IACP,GAAG,CAAa;IAChB,SAAS,CAAY;IAEtC,YAAY,OAAwB,EAAE,EAAM;QAC1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,wCAAwC,CAAC;QAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -1,66 +0,0 @@
1
- import { LodestarError } from "@lodestar/utils";
2
- export declare enum Eth1ErrorCode {
3
- /** Deposit index too high */
4
- DEPOSIT_INDEX_TOO_HIGH = "ETH1_ERROR_DEPOSIT_INDEX_TOO_HIGH",
5
- /** Not enough deposits in DB */
6
- NOT_ENOUGH_DEPOSITS = "ETH1_ERROR_NOT_ENOUGH_DEPOSITS",
7
- /** Too many deposits returned by DB */
8
- TOO_MANY_DEPOSITS = "ETH1_ERROR_TOO_MANY_DEPOSITS",
9
- /** Deposit root tree does not match current eth1Data */
10
- WRONG_DEPOSIT_ROOT = "ETH1_ERROR_WRONG_DEPOSIT_ROOT",
11
- /** No deposits found for block range */
12
- NO_DEPOSITS_FOR_BLOCK_RANGE = "ETH1_ERROR_NO_DEPOSITS_FOR_BLOCK_RANGE",
13
- /** No depositRoot for depositCount */
14
- NO_DEPOSIT_ROOT = "ETH1_ERROR_NO_DEPOSIT_ROOT",
15
- /** Not enough deposit roots for index */
16
- NOT_ENOUGH_DEPOSIT_ROOTS = "ETH1_ERROR_NOT_ENOUGH_DEPOSIT_ROOTS",
17
- /** Attempted to insert a duplicate log for same index into the Eth1DepositsCache */
18
- DUPLICATE_DISTINCT_LOG = "ETH1_ERROR_DUPLICATE_DISTINCT_LOG",
19
- /** Attempted to insert a log with index != prev + 1 into the Eth1DepositsCache */
20
- NON_CONSECUTIVE_LOGS = "ETH1_ERROR_NON_CONSECUTIVE_LOGS",
21
- /** Expected a deposit log in the db for the index, missing log implies a corrupted db */
22
- MISSING_DEPOSIT_LOG = "ETH1_ERROR_MISSING_DEPOSIT_LOG"
23
- }
24
- export type Eth1ErrorType = {
25
- code: Eth1ErrorCode.DEPOSIT_INDEX_TOO_HIGH;
26
- depositIndex: number;
27
- depositCount: number;
28
- } | {
29
- code: Eth1ErrorCode.NOT_ENOUGH_DEPOSITS;
30
- len: number;
31
- expectedLen: number;
32
- } | {
33
- code: Eth1ErrorCode.TOO_MANY_DEPOSITS;
34
- len: number;
35
- expectedLen: number;
36
- } | {
37
- code: Eth1ErrorCode.WRONG_DEPOSIT_ROOT;
38
- root: string;
39
- expectedRoot: string;
40
- } | {
41
- code: Eth1ErrorCode.NO_DEPOSITS_FOR_BLOCK_RANGE;
42
- fromBlock: number;
43
- toBlock: number;
44
- } | {
45
- code: Eth1ErrorCode.NO_DEPOSIT_ROOT;
46
- depositCount: number;
47
- } | {
48
- code: Eth1ErrorCode.NOT_ENOUGH_DEPOSIT_ROOTS;
49
- index: number;
50
- treeLength: number;
51
- } | {
52
- code: Eth1ErrorCode.DUPLICATE_DISTINCT_LOG;
53
- newIndex: number;
54
- lastLogIndex: number;
55
- } | {
56
- code: Eth1ErrorCode.NON_CONSECUTIVE_LOGS;
57
- newIndex: number;
58
- lastLogIndex: number;
59
- } | {
60
- code: Eth1ErrorCode.MISSING_DEPOSIT_LOG;
61
- newIndex: number;
62
- lastLogIndex: number;
63
- };
64
- export declare class Eth1Error extends LodestarError<Eth1ErrorType> {
65
- }
66
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/eth1/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,oBAAY,aAAa;IACvB,6BAA6B;IAC7B,sBAAsB,sCAAsC;IAC5D,gCAAgC;IAChC,mBAAmB,mCAAmC;IACtD,uCAAuC;IACvC,iBAAiB,iCAAiC;IAClD,wDAAwD;IACxD,kBAAkB,kCAAkC;IAEpD,wCAAwC;IACxC,2BAA2B,2CAA2C;IACtE,sCAAsC;IACtC,eAAe,+BAA+B;IAC9C,yCAAyC;IACzC,wBAAwB,wCAAwC;IAEhE,oFAAoF;IACpF,sBAAsB,sCAAsC;IAC5D,kFAAkF;IAClF,oBAAoB,oCAAoC;IACxD,yFAAyF;IACzF,mBAAmB,mCAAmC;CACvD;AAED,MAAM,MAAM,aAAa,GACrB;IAAC,IAAI,EAAE,aAAa,CAAC,sBAAsB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GACxF;IAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAC3E;IAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GACzE;IAAC,IAAI,EAAE,aAAa,CAAC,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAC5E;IAAC,IAAI,EAAE,aAAa,CAAC,2BAA2B,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACrF;IAAC,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAC3D;IAAC,IAAI,EAAE,aAAa,CAAC,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GACjF;IAAC,IAAI,EAAE,aAAa,CAAC,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GACpF;IAAC,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAClF;IAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,CAAC;AAEtF,qBAAa,SAAU,SAAQ,aAAa,CAAC,aAAa,CAAC;CAAG"}
@@ -1,27 +0,0 @@
1
- import { LodestarError } from "@lodestar/utils";
2
- export var Eth1ErrorCode;
3
- (function (Eth1ErrorCode) {
4
- /** Deposit index too high */
5
- Eth1ErrorCode["DEPOSIT_INDEX_TOO_HIGH"] = "ETH1_ERROR_DEPOSIT_INDEX_TOO_HIGH";
6
- /** Not enough deposits in DB */
7
- Eth1ErrorCode["NOT_ENOUGH_DEPOSITS"] = "ETH1_ERROR_NOT_ENOUGH_DEPOSITS";
8
- /** Too many deposits returned by DB */
9
- Eth1ErrorCode["TOO_MANY_DEPOSITS"] = "ETH1_ERROR_TOO_MANY_DEPOSITS";
10
- /** Deposit root tree does not match current eth1Data */
11
- Eth1ErrorCode["WRONG_DEPOSIT_ROOT"] = "ETH1_ERROR_WRONG_DEPOSIT_ROOT";
12
- /** No deposits found for block range */
13
- Eth1ErrorCode["NO_DEPOSITS_FOR_BLOCK_RANGE"] = "ETH1_ERROR_NO_DEPOSITS_FOR_BLOCK_RANGE";
14
- /** No depositRoot for depositCount */
15
- Eth1ErrorCode["NO_DEPOSIT_ROOT"] = "ETH1_ERROR_NO_DEPOSIT_ROOT";
16
- /** Not enough deposit roots for index */
17
- Eth1ErrorCode["NOT_ENOUGH_DEPOSIT_ROOTS"] = "ETH1_ERROR_NOT_ENOUGH_DEPOSIT_ROOTS";
18
- /** Attempted to insert a duplicate log for same index into the Eth1DepositsCache */
19
- Eth1ErrorCode["DUPLICATE_DISTINCT_LOG"] = "ETH1_ERROR_DUPLICATE_DISTINCT_LOG";
20
- /** Attempted to insert a log with index != prev + 1 into the Eth1DepositsCache */
21
- Eth1ErrorCode["NON_CONSECUTIVE_LOGS"] = "ETH1_ERROR_NON_CONSECUTIVE_LOGS";
22
- /** Expected a deposit log in the db for the index, missing log implies a corrupted db */
23
- Eth1ErrorCode["MISSING_DEPOSIT_LOG"] = "ETH1_ERROR_MISSING_DEPOSIT_LOG";
24
- })(Eth1ErrorCode || (Eth1ErrorCode = {}));
25
- export class Eth1Error extends LodestarError {
26
- }
27
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/eth1/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAN,IAAY,aAuBX;AAvBD,WAAY,aAAa;IACvB,6BAA6B;IAC7B,6EAA4D,CAAA;IAC5D,gCAAgC;IAChC,uEAAsD,CAAA;IACtD,uCAAuC;IACvC,mEAAkD,CAAA;IAClD,wDAAwD;IACxD,qEAAoD,CAAA;IAEpD,wCAAwC;IACxC,uFAAsE,CAAA;IACtE,sCAAsC;IACtC,+DAA8C,CAAA;IAC9C,yCAAyC;IACzC,iFAAgE,CAAA;IAEhE,oFAAoF;IACpF,6EAA4D,CAAA;IAC5D,kFAAkF;IAClF,yEAAwD,CAAA;IACxD,yFAAyF;IACzF,uEAAsD,CAAA;AACxD,CAAC,EAvBW,aAAa,KAAb,aAAa,QAuBxB;AAcD,MAAM,OAAO,SAAU,SAAQ,aAA4B;CAAG"}
@@ -1,19 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { phase0 } from "@lodestar/types";
3
- import { IBeaconDb } from "../db/index.js";
4
- export declare class Eth1DataCache {
5
- db: IBeaconDb;
6
- config: ChainForkConfig;
7
- constructor(config: ChainForkConfig, db: IBeaconDb);
8
- get({ timestampRange }: {
9
- timestampRange: {
10
- gte: number;
11
- lte: number;
12
- };
13
- }): Promise<phase0.Eth1DataOrdered[]>;
14
- add(eth1Datas: (phase0.Eth1DataOrdered & {
15
- timestamp: number;
16
- })[]): Promise<void>;
17
- getHighestCachedBlockNumber(): Promise<number | null>;
18
- }
19
- //# sourceMappingURL=eth1DataCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1DataCache.d.ts","sourceRoot":"","sources":["../../src/eth1/eth1DataCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,aAAa;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;gBAEZ,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS;IAK5C,GAAG,CAAC,EAAC,cAAc,EAAC,EAAE;QAAC,cAAc,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAItG,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E,2BAA2B,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAI5D"}
@@ -1,19 +0,0 @@
1
- export class Eth1DataCache {
2
- db;
3
- config;
4
- constructor(config, db) {
5
- this.config = config;
6
- this.db = db;
7
- }
8
- async get({ timestampRange }) {
9
- return this.db.eth1Data.values(timestampRange);
10
- }
11
- async add(eth1Datas) {
12
- await this.db.eth1Data.batchPutValues(eth1Datas);
13
- }
14
- async getHighestCachedBlockNumber() {
15
- const highestEth1Data = await this.db.eth1Data.lastValue();
16
- return highestEth1Data?.blockNumber ?? null;
17
- }
18
- }
19
- //# sourceMappingURL=eth1DataCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1DataCache.js","sourceRoot":"","sources":["../../src/eth1/eth1DataCache.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACxB,EAAE,CAAY;IACd,MAAM,CAAkB;IAExB,YAAY,MAAuB,EAAE,EAAa;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAC,cAAc,EAA+C;QACtE,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAA2D;QACnE,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC3D,OAAO,eAAe,EAAE,WAAW,IAAI,IAAI,CAAC;IAC9C,CAAC;CACF"}
@@ -1,80 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
3
- import { Logger } from "@lodestar/utils";
4
- import { IBeaconDb } from "../db/index.js";
5
- import { Metrics } from "../metrics/index.js";
6
- import { Eth1DataAndDeposits, IEth1Provider } from "./interface.js";
7
- import { Eth1Options } from "./options.js";
8
- export type Eth1DepositDataTrackerModules = {
9
- config: ChainForkConfig;
10
- db: IBeaconDb;
11
- metrics: Metrics | null;
12
- logger: Logger;
13
- signal: AbortSignal;
14
- };
15
- /**
16
- * Main class handling eth1 data fetching, processing and storing
17
- * Upon instantiation, starts fetching deposits and blocks at regular intervals
18
- */
19
- export declare class Eth1DepositDataTracker {
20
- private readonly eth1Provider;
21
- private config;
22
- private logger;
23
- private signal;
24
- private readonly metrics;
25
- private depositsCache;
26
- private eth1DataCache;
27
- private lastProcessedDepositBlockNumber;
28
- /** Dynamically adjusted follow distance */
29
- private eth1FollowDistance;
30
- /** Dynamically adjusted batch size to fetch deposit logs */
31
- private eth1GetBlocksBatchSizeDynamic;
32
- /** Dynamically adjusted batch size to fetch deposit logs */
33
- private eth1GetLogsBatchSizeDynamic;
34
- private readonly forcedEth1DataVote;
35
- /** To stop `runAutoUpdate()` in addition to AbortSignal */
36
- private stopPolling;
37
- constructor(opts: Eth1Options, { config, db, metrics, logger, signal }: Eth1DepositDataTrackerModules, eth1Provider: IEth1Provider);
38
- isPollingEth1Data(): boolean;
39
- stopPollingEth1Data(): void;
40
- /**
41
- * Return eth1Data and deposits ready for block production for a given state
42
- */
43
- getEth1DataAndDeposits(state: CachedBeaconStateAllForks): Promise<Eth1DataAndDeposits>;
44
- /**
45
- * Returns an eth1Data vote for a given state.
46
- * Requires internal caches to be updated regularly to return good results
47
- */
48
- private getEth1Data;
49
- /**
50
- * Returns deposits to be included for a given state and eth1Data vote.
51
- * Requires internal caches to be updated regularly to return good results
52
- */
53
- private getDeposits;
54
- /**
55
- * Abortable async setInterval that runs its callback once at max between `ms` at minimum
56
- */
57
- private runAutoUpdate;
58
- /**
59
- * Update the deposit and block cache, returning an error if either fail
60
- * @returns true if it has catched up to the remote follow block
61
- */
62
- private update;
63
- /**
64
- * Fetch deposit events from remote eth1 node up to follow-distance block
65
- * @returns true if it has catched up to the remote follow block
66
- */
67
- private updateDepositCache;
68
- /**
69
- * Fetch block headers from a remote eth1 node up to follow-distance block
70
- *
71
- * depositRoot and depositCount are inferred from already fetched deposits.
72
- * Calling get_deposit_root() and the smart contract for a non-latest block requires an
73
- * archive node, something most users don't have access too.
74
- * @returns true if it has catched up to the remote follow timestamp
75
- */
76
- private updateBlockCache;
77
- private getFromBlockToFetch;
78
- private getLastProcessedDepositBlockNumber;
79
- }
80
- //# sourceMappingURL=eth1DepositDataTracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1DepositDataTracker.d.ts","sourceRoot":"","sources":["../../src/eth1/eth1DepositDataTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,yBAAyB,EAG1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAe,MAAM,EAA+C,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAG5C,OAAO,EAAC,mBAAmB,EAAsB,aAAa,EAAC,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AA6BzC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAsB;IAwB/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvB/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAGzC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,+BAA+B,CAAuB;IAE9D,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAAS;IACnC,4DAA4D;IAC5D,OAAO,CAAC,6BAA6B,CAA8B;IACnE,4DAA4D;IAC5D,OAAO,CAAC,2BAA2B,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAC5D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAU;gBAG3B,IAAI,EAAE,WAAW,EACjB,EAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,6BAA6B,EACnD,YAAY,EAAE,aAAa;IAuC9C,iBAAiB,IAAI,OAAO;IAI5B,mBAAmB,IAAI,IAAI;IAI3B;;OAEG;IACG,sBAAsB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAa5F;;;OAGG;YACW,WAAW;IAezB;;;OAGG;YACW,WAAW;IAkBzB;;OAEG;YACW,aAAa;IA8B3B;;;OAGG;YACW,MAAM;IAepB;;;OAGG;YACW,kBAAkB;IAoChC;;;;;;;OAOG;YACW,gBAAgB;IAiH9B,OAAO,CAAC,mBAAmB;YAOb,kCAAkC;CAMjD"}