@lodestar/types 1.22.0 → 1.23.0-dev.06b4c2d324

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 (60) hide show
  1. package/lib/altair/index.d.ts +1 -1
  2. package/lib/altair/index.js +1 -1
  3. package/lib/altair/index.js.map +1 -1
  4. package/lib/altair/sszTypes.js +1 -1
  5. package/lib/altair/sszTypes.js.map +1 -1
  6. package/lib/bellatrix/index.d.ts +1 -1
  7. package/lib/bellatrix/index.js +1 -1
  8. package/lib/bellatrix/index.js.map +1 -1
  9. package/lib/bellatrix/sszTypes.js +3 -3
  10. package/lib/bellatrix/sszTypes.js.map +1 -1
  11. package/lib/capella/index.d.ts +1 -1
  12. package/lib/capella/index.js +1 -1
  13. package/lib/capella/index.js.map +1 -1
  14. package/lib/capella/sszTypes.js +3 -3
  15. package/lib/capella/sszTypes.js.map +1 -1
  16. package/lib/deneb/index.d.ts +1 -1
  17. package/lib/deneb/index.js +1 -1
  18. package/lib/deneb/index.js.map +1 -1
  19. package/lib/deneb/sszTypes.d.ts +1 -1
  20. package/lib/deneb/sszTypes.js +4 -4
  21. package/lib/deneb/sszTypes.js.map +1 -1
  22. package/lib/electra/index.d.ts +1 -1
  23. package/lib/electra/index.js +1 -1
  24. package/lib/electra/index.js.map +1 -1
  25. package/lib/electra/sszTypes.d.ts +229 -241
  26. package/lib/electra/sszTypes.js +41 -44
  27. package/lib/electra/sszTypes.js.map +1 -1
  28. package/lib/electra/types.d.ts +2 -4
  29. package/lib/index.d.ts +1 -0
  30. package/lib/index.js +1 -0
  31. package/lib/index.js.map +1 -1
  32. package/lib/phase0/index.d.ts +1 -1
  33. package/lib/phase0/index.js +1 -1
  34. package/lib/phase0/index.js.map +1 -1
  35. package/lib/phase0/sszTypes.d.ts +1 -1
  36. package/lib/phase0/sszTypes.js +1 -1
  37. package/lib/phase0/sszTypes.js.map +1 -1
  38. package/lib/phase0/validator.js +2 -0
  39. package/lib/phase0/validator.js.map +1 -1
  40. package/lib/primitive/index.d.ts +1 -1
  41. package/lib/primitive/index.js +1 -1
  42. package/lib/primitive/index.js.map +1 -1
  43. package/lib/primitive/sszTypes.d.ts +1 -1
  44. package/lib/primitive/sszTypes.js +2 -1
  45. package/lib/primitive/sszTypes.js.map +1 -1
  46. package/lib/sszTypes.d.ts +290 -242
  47. package/lib/sszTypes.js +1 -1
  48. package/lib/sszTypes.js.map +1 -1
  49. package/lib/types.d.ts +17 -5
  50. package/lib/types.js +1 -1
  51. package/lib/types.js.map +1 -1
  52. package/lib/utils/executionAddress.js +1 -1
  53. package/lib/utils/executionAddress.js.map +1 -1
  54. package/lib/utils/typeguards.d.ts +2 -1
  55. package/lib/utils/typeguards.js +6 -0
  56. package/lib/utils/typeguards.js.map +1 -1
  57. package/lib/utils/validatorStatus.d.ts +11 -0
  58. package/lib/utils/validatorStatus.js +35 -0
  59. package/lib/utils/validatorStatus.js.map +1 -0
  60. package/package.json +6 -6
package/lib/sszTypes.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { ForkName } from "@lodestar/params";
2
- import { ssz as phase0 } from "./phase0/index.js";
3
2
  import { ssz as altair } from "./altair/index.js";
4
3
  import { ssz as bellatrix } from "./bellatrix/index.js";
5
4
  import { ssz as capella } from "./capella/index.js";
6
5
  import { ssz as deneb } from "./deneb/index.js";
7
6
  import { ssz as electra } from "./electra/index.js";
7
+ import { ssz as phase0 } from "./phase0/index.js";
8
8
  export * from "./primitive/sszTypes.js";
9
9
  export { phase0, altair, bellatrix, capella, deneb, electra };
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sszTypes.js","sourceRoot":"","sources":["../src/sszTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,GAAG,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,GAAG,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,GAAG,IAAI,SAAS,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,GAAG,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,GAAG,IAAI,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,GAAG,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAElD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,MAAM,EAAC;IAC9B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAC;IACzC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAC;IAC1D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAC;IACpE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAC;IAC5E,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAC;CAC3F,CAAC;AA4BF,MAAM,UAAU,WAAW,CACzB,IAAO,EACP,QAAY;IAEZ,OAAO,CACL,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAmC,CAAC,CAC/E,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"sszTypes.js","sourceRoot":"","sources":["../src/sszTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,GAAG,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,GAAG,IAAI,SAAS,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,GAAG,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,GAAG,IAAI,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,GAAG,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,GAAG,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEhD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,MAAM,EAAC;IAC9B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAC;IACzC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAC;IAC1D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAC;IACpE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAC;IAC5E,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAC;CAC3F,CAAC;AA2BF,MAAM,UAAU,WAAW,CACzB,IAAO,EACP,QAAY;IAEZ,OAAO,CACL,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAmC,CAAC,CAC/E,CAAC;AACzB,CAAC"}
package/lib/types.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { ForkAll, ForkBlobs, ForkExecution, ForkLightClient, ForkName, ForkPreBlobs } from "@lodestar/params";
2
- import { ts as phase0 } from "./phase0/index.js";
1
+ import { ForkAll, ForkBlobs, ForkExecution, ForkLightClient, ForkName, ForkPostElectra, ForkPreBlobs } from "@lodestar/params";
3
2
  import { ts as altair } from "./altair/index.js";
4
3
  import { ts as bellatrix } from "./bellatrix/index.js";
5
4
  import { ts as capella } from "./capella/index.js";
6
5
  import { ts as deneb } from "./deneb/index.js";
7
6
  import { ts as electra } from "./electra/index.js";
7
+ import { ts as phase0 } from "./phase0/index.js";
8
8
  import { Slot } from "./primitive/types.js";
9
9
  export * from "./primitive/types.js";
10
10
  export { ts as phase0 } from "./phase0/index.js";
@@ -20,6 +20,16 @@ export declare enum ProducedBlockSource {
20
20
  builder = "builder",
21
21
  engine = "engine"
22
22
  }
23
+ export type WithBytes<T> = {
24
+ data: T;
25
+ /** SSZ serialized `data` bytes */
26
+ bytes: Uint8Array;
27
+ };
28
+ export type WithOptionalBytes<T> = {
29
+ data: T;
30
+ /** SSZ serialized `data` bytes */
31
+ bytes?: Uint8Array | null;
32
+ };
23
33
  export type SlotRootHex = {
24
34
  slot: Slot;
25
35
  root: RootHex;
@@ -173,7 +183,7 @@ type TypesByFork = {
173
183
  BeaconState: electra.BeaconState;
174
184
  SignedBeaconBlock: electra.SignedBeaconBlock;
175
185
  Metadata: altair.Metadata;
176
- LightClientHeader: electra.LightClientHeader;
186
+ LightClientHeader: deneb.LightClientHeader;
177
187
  LightClientBootstrap: electra.LightClientBootstrap;
178
188
  LightClientUpdate: electra.LightClientUpdate;
179
189
  LightClientFinalityUpdate: electra.LightClientFinalityUpdate;
@@ -182,8 +192,8 @@ type TypesByFork = {
182
192
  BlindedBeaconBlock: electra.BlindedBeaconBlock;
183
193
  BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
184
194
  SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
185
- ExecutionPayload: electra.ExecutionPayload;
186
- ExecutionPayloadHeader: electra.ExecutionPayloadHeader;
195
+ ExecutionPayload: deneb.ExecutionPayload;
196
+ ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
187
197
  BuilderBid: electra.BuilderBid;
188
198
  SignedBuilderBid: electra.SignedBuilderBid;
189
199
  SSEPayloadAttributes: electra.SSEPayloadAttributes;
@@ -200,6 +210,7 @@ type TypesByFork = {
200
210
  AttesterSlashing: electra.AttesterSlashing;
201
211
  AggregateAndProof: electra.AggregateAndProof;
202
212
  SignedAggregateAndProof: electra.SignedAggregateAndProof;
213
+ ExecutionRequests: electra.ExecutionRequests;
203
214
  };
204
215
  };
205
216
  export type TypesFor<F extends ForkName, K extends keyof TypesByFork[F] | void = void> = K extends void ? TypesByFork[F] : TypesByFork[F][Exclude<K, void>];
@@ -218,6 +229,7 @@ export type BeaconBlockOrContents<FB extends ForkPreBlobs = ForkPreBlobs, FC ext
218
229
  export type SignedBeaconBlockOrContents<FB extends ForkPreBlobs = ForkPreBlobs, FC extends ForkBlobs = ForkBlobs> = SignedBeaconBlock<FB> | SignedBlockContents<FC>;
219
230
  export type ExecutionPayload<F extends ForkExecution = ForkExecution> = TypesByFork[F]["ExecutionPayload"];
220
231
  export type ExecutionPayloadHeader<F extends ForkExecution = ForkExecution> = TypesByFork[F]["ExecutionPayloadHeader"];
232
+ export type ExecutionRequests<F extends ForkPostElectra = ForkPostElectra> = TypesByFork[F]["ExecutionRequests"];
221
233
  export type BlobsBundle<F extends ForkBlobs = ForkBlobs> = TypesByFork[F]["BlobsBundle"];
222
234
  export type Contents<F extends ForkBlobs = ForkBlobs> = TypesByFork[F]["Contents"];
223
235
  export type ExecutionPayloadAndBlobsBundle<F extends ForkBlobs = ForkBlobs> = TypesByFork[F]["ExecutionPayloadAndBlobsBundle"];
package/lib/types.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ForkName } from "@lodestar/params";
1
+ import { ForkName, } from "@lodestar/params";
2
2
  export * from "./primitive/types.js";
3
3
  export { ts as phase0 } from "./phase0/index.js";
4
4
  export { ts as altair } from "./altair/index.js";
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,QAAQ,EAAe,MAAM,kBAAkB,CAAC;AAS5G,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,EAAE,IAAI,SAAS,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,EAAE,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,EAAE,IAAI,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,EAAE,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAKjD,0DAA0D;AAC1D,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AACnB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,QAAQ,GAGT,MAAM,kBAAkB,CAAC;AAS1B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,EAAE,IAAI,SAAS,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,EAAE,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,EAAE,IAAI,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,EAAE,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAKjD,0DAA0D;AAC1D,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AACnB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}
@@ -1,5 +1,5 @@
1
- import { keccak256 } from "ethereum-cryptography/keccak.js";
2
1
  import { ByteVectorType } from "@chainsafe/ssz";
2
+ import { keccak256 } from "ethereum-cryptography/keccak.js";
3
3
  export class ExecutionAddressType extends ByteVectorType {
4
4
  constructor() {
5
5
  super(20, { typeName: "ExecutionAddress" });
@@ -1 +1 @@
1
- {"version":3,"file":"executionAddress.js","sourceRoot":"","sources":["../../src/utils/executionAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAI9C,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD;QACE,KAAK,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,kBAAkB,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,KAAiB;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAW,CAAC;QAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEnC,gIAAgI;IAChI,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"executionAddress.js","sourceRoot":"","sources":["../../src/utils/executionAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAI1D,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD;QACE,KAAK,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,kBAAkB,EAAC,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,KAAiB;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAW,CAAC;QAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEnC,gIAAgI;IAChI,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ForkBlobs, ForkExecution, ForkPostElectra } from "@lodestar/params";
2
- import { BlockContents, SignedBeaconBlock, ExecutionPayload, ExecutionPayloadAndBlobsBundle, BeaconBlockBody, BeaconBlockOrContents, SignedBeaconBlockOrContents, ExecutionPayloadHeader, BlindedBeaconBlock, SignedBlindedBeaconBlock, BlindedBeaconBlockBody, SignedBlockContents, Attestation } from "../types.js";
2
+ import { Attestation, BeaconBlockBody, BeaconBlockOrContents, BlindedBeaconBlock, BlindedBeaconBlockBody, BlockContents, ExecutionPayload, ExecutionPayloadAndBlobsBundle, ExecutionPayloadHeader, LightClientUpdate, SignedBeaconBlock, SignedBeaconBlockOrContents, SignedBlindedBeaconBlock, SignedBlockContents } from "../types.js";
3
3
  export declare function isExecutionPayload<F extends ForkExecution>(payload: ExecutionPayload<F> | ExecutionPayloadHeader<F>): payload is ExecutionPayload<F>;
4
4
  export declare function isExecutionPayloadHeader<F extends ForkExecution>(payload: ExecutionPayload<F> | ExecutionPayloadHeader<F>): payload is ExecutionPayloadHeader<F>;
5
5
  export declare function isExecutionPayloadAndBlobsBundle<F extends ForkBlobs>(data: ExecutionPayload<ForkExecution> | ExecutionPayloadAndBlobsBundle<F>): data is ExecutionPayloadAndBlobsBundle<F>;
@@ -9,4 +9,5 @@ export declare function isBlindedBeaconBlockBody<F extends ForkExecution>(body:
9
9
  export declare function isBlockContents<F extends ForkBlobs>(data: BeaconBlockOrContents | SignedBeaconBlockOrContents): data is BlockContents<F>;
10
10
  export declare function isSignedBlockContents<F extends ForkBlobs>(data: SignedBeaconBlockOrContents | BeaconBlockOrContents): data is SignedBlockContents<F>;
11
11
  export declare function isElectraAttestation(attestation: Attestation): attestation is Attestation<ForkPostElectra>;
12
+ export declare function isElectraLightClientUpdate(update: LightClientUpdate): update is LightClientUpdate<ForkPostElectra>;
12
13
  //# sourceMappingURL=typeguards.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { FINALIZED_ROOT_DEPTH_ELECTRA } from "@lodestar/params";
1
2
  export function isExecutionPayload(payload) {
2
3
  // we just check transactionsRoot for determining as it the base field
3
4
  // that is present and differs from ExecutionPayload for all forks
@@ -29,4 +30,9 @@ export function isSignedBlockContents(data) {
29
30
  export function isElectraAttestation(attestation) {
30
31
  return attestation.committeeBits !== undefined;
31
32
  }
33
+ export function isElectraLightClientUpdate(update) {
34
+ const updatePostElectra = update;
35
+ return (updatePostElectra.finalityBranch !== undefined &&
36
+ updatePostElectra.finalityBranch.length === FINALIZED_ROOT_DEPTH_ELECTRA);
37
+ }
32
38
  //# sourceMappingURL=typeguards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,kBAAkB,CAChC,OAAwD;IAExD,sEAAsE;IACtE,kEAAkE;IAClE,OAAQ,OAA+B,CAAC,YAAY,KAAK,SAAS,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAwD;IAExD,sEAAsE;IACtE,kEAAkE;IAClE,OAAQ,OAAqC,CAAC,gBAAgB,KAAK,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAyE;IAEzE,OAAQ,IAAkD,CAAC,WAAW,KAAK,SAAS,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA0D;IAE1D,OAAQ,KAAqB,CAAC,IAAI,KAAK,IAAI,IAAI,wBAAwB,CAAE,KAAqB,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAA4D;IAE5D,OAAQ,WAA2C,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,SAAS,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAA8C;IAE9C,OAAQ,IAA+B,CAAC,sBAAsB,KAAK,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAyD;IAEzD,OAAQ,IAAyB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAyD;IAEzD,OAAQ,IAA+B,CAAC,SAAS,KAAK,SAAS,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,OAAQ,WAA4C,CAAC,aAAa,KAAK,SAAS,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAA4C,MAAM,kBAAkB,CAAC;AAmBzG,MAAM,UAAU,kBAAkB,CAChC,OAAwD;IAExD,sEAAsE;IACtE,kEAAkE;IAClE,OAAQ,OAA+B,CAAC,YAAY,KAAK,SAAS,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAwD;IAExD,sEAAsE;IACtE,kEAAkE;IAClE,OAAQ,OAAqC,CAAC,gBAAgB,KAAK,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAAyE;IAEzE,OAAQ,IAAkD,CAAC,WAAW,KAAK,SAAS,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA0D;IAE1D,OAAQ,KAAqB,CAAC,IAAI,KAAK,IAAI,IAAI,wBAAwB,CAAE,KAAqB,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAA4D;IAE5D,OAAQ,WAA2C,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,SAAS,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAA8C;IAE9C,OAAQ,IAA+B,CAAC,sBAAsB,KAAK,SAAS,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAyD;IAEzD,OAAQ,IAAyB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAyD;IAEzD,OAAQ,IAA+B,CAAC,SAAS,KAAK,SAAS,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,OAAQ,WAA4C,CAAC,aAAa,KAAK,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAyB;IAClE,MAAM,iBAAiB,GAAG,MAA4C,CAAC;IACvE,OAAO,CACL,iBAAiB,CAAC,cAAc,KAAK,SAAS;QAC9C,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,4BAA4B,CACzE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Epoch, phase0 } from "../types.js";
2
+ /**
3
+ * [Validator status specification](https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ)
4
+ */
5
+ export type ValidatorStatus = "pending_initialized" | "pending_queued" | "active_ongoing" | "active_exiting" | "active_slashed" | "exited_unslashed" | "exited_slashed" | "withdrawal_possible" | "withdrawal_done";
6
+ /**
7
+ * Get the status of the validator
8
+ * based on conditions outlined in https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ
9
+ */
10
+ export declare function getValidatorStatus(validator: phase0.Validator, currentEpoch: Epoch): ValidatorStatus;
11
+ //# sourceMappingURL=validatorStatus.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { FAR_FUTURE_EPOCH } from "@lodestar/params";
2
+ /**
3
+ * Get the status of the validator
4
+ * based on conditions outlined in https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ
5
+ */
6
+ export function getValidatorStatus(validator, currentEpoch) {
7
+ // pending
8
+ if (validator.activationEpoch > currentEpoch) {
9
+ if (validator.activationEligibilityEpoch === FAR_FUTURE_EPOCH) {
10
+ return "pending_initialized";
11
+ }
12
+ if (validator.activationEligibilityEpoch < FAR_FUTURE_EPOCH) {
13
+ return "pending_queued";
14
+ }
15
+ }
16
+ // active
17
+ if (validator.activationEpoch <= currentEpoch && currentEpoch < validator.exitEpoch) {
18
+ if (validator.exitEpoch === FAR_FUTURE_EPOCH) {
19
+ return "active_ongoing";
20
+ }
21
+ if (validator.exitEpoch < FAR_FUTURE_EPOCH) {
22
+ return validator.slashed ? "active_slashed" : "active_exiting";
23
+ }
24
+ }
25
+ // exited
26
+ if (validator.exitEpoch <= currentEpoch && currentEpoch < validator.withdrawableEpoch) {
27
+ return validator.slashed ? "exited_slashed" : "exited_unslashed";
28
+ }
29
+ // withdrawal
30
+ if (validator.withdrawableEpoch <= currentEpoch) {
31
+ return validator.effectiveBalance !== 0 ? "withdrawal_possible" : "withdrawal_done";
32
+ }
33
+ throw new Error("ValidatorStatus unknown");
34
+ }
35
+ //# sourceMappingURL=validatorStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatorStatus.js","sourceRoot":"","sources":["../../src/utils/validatorStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAiBlD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA2B,EAAE,YAAmB;IACjF,UAAU;IACV,IAAI,SAAS,CAAC,eAAe,GAAG,YAAY,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,0BAA0B,KAAK,gBAAgB,EAAE,CAAC;YAC9D,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,IAAI,SAAS,CAAC,0BAA0B,GAAG,gBAAgB,EAAE,CAAC;YAC5D,OAAO,gBAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,SAAS;IACT,IAAI,SAAS,CAAC,eAAe,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACpF,IAAI,SAAS,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;YAC7C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,SAAS,CAAC,SAAS,GAAG,gBAAgB,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACjE,CAAC;IACH,CAAC;IACD,SAAS;IACT,IAAI,SAAS,CAAC,SAAS,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACtF,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACnE,CAAC;IACD,aAAa;IACb,IAAI,SAAS,CAAC,iBAAiB,IAAI,YAAY,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.22.0",
14
+ "version": "1.23.0-dev.06b4c2d324",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -59,8 +59,8 @@
59
59
  "build:release": "yarn clean && yarn build",
60
60
  "check-build": "node -e \"(async function() { await import('./lib/index.js') })()\"",
61
61
  "check-types": "tsc",
62
- "lint": "eslint --color --ext .ts src/ test/",
63
- "lint:fix": "yarn run lint --fix",
62
+ "lint": "biome check src/ test/",
63
+ "lint:fix": "yarn run lint --write",
64
64
  "test": "yarn test:unit",
65
65
  "test:constants:minimal": "LODESTAR_PRESET=minimal vitest --run --dir test/constants/",
66
66
  "test:constants:mainnet": "LODESTAR_PRESET=mainnet vitest --run --dir test/constants/",
@@ -73,8 +73,8 @@
73
73
  },
74
74
  "types": "lib/index.d.ts",
75
75
  "dependencies": {
76
- "@chainsafe/ssz": "^0.17.1",
77
- "@lodestar/params": "^1.22.0",
76
+ "@chainsafe/ssz": "^0.18.0",
77
+ "@lodestar/params": "1.23.0-dev.06b4c2d324",
78
78
  "ethereum-cryptography": "^2.0.0"
79
79
  },
80
80
  "keywords": [
@@ -83,5 +83,5 @@
83
83
  "beacon",
84
84
  "blockchain"
85
85
  ],
86
- "gitHead": "c26cc63751f0a9f6f802153f002512dc5b8c58e5"
86
+ "gitHead": "d861608d683560a99e129e75cf6650d58acbcd4b"
87
87
  }