@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.
- package/lib/altair/index.d.ts +1 -1
- package/lib/altair/index.js +1 -1
- package/lib/altair/index.js.map +1 -1
- package/lib/altair/sszTypes.js +1 -1
- package/lib/altair/sszTypes.js.map +1 -1
- package/lib/bellatrix/index.d.ts +1 -1
- package/lib/bellatrix/index.js +1 -1
- package/lib/bellatrix/index.js.map +1 -1
- package/lib/bellatrix/sszTypes.js +3 -3
- package/lib/bellatrix/sszTypes.js.map +1 -1
- package/lib/capella/index.d.ts +1 -1
- package/lib/capella/index.js +1 -1
- package/lib/capella/index.js.map +1 -1
- package/lib/capella/sszTypes.js +3 -3
- package/lib/capella/sszTypes.js.map +1 -1
- package/lib/deneb/index.d.ts +1 -1
- package/lib/deneb/index.js +1 -1
- package/lib/deneb/index.js.map +1 -1
- package/lib/deneb/sszTypes.d.ts +1 -1
- package/lib/deneb/sszTypes.js +4 -4
- package/lib/deneb/sszTypes.js.map +1 -1
- package/lib/electra/index.d.ts +1 -1
- package/lib/electra/index.js +1 -1
- package/lib/electra/index.js.map +1 -1
- package/lib/electra/sszTypes.d.ts +229 -241
- package/lib/electra/sszTypes.js +41 -44
- package/lib/electra/sszTypes.js.map +1 -1
- package/lib/electra/types.d.ts +2 -4
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/phase0/index.d.ts +1 -1
- package/lib/phase0/index.js +1 -1
- package/lib/phase0/index.js.map +1 -1
- package/lib/phase0/sszTypes.d.ts +1 -1
- package/lib/phase0/sszTypes.js +1 -1
- package/lib/phase0/sszTypes.js.map +1 -1
- package/lib/phase0/validator.js +2 -0
- package/lib/phase0/validator.js.map +1 -1
- package/lib/primitive/index.d.ts +1 -1
- package/lib/primitive/index.js +1 -1
- package/lib/primitive/index.js.map +1 -1
- package/lib/primitive/sszTypes.d.ts +1 -1
- package/lib/primitive/sszTypes.js +2 -1
- package/lib/primitive/sszTypes.js.map +1 -1
- package/lib/sszTypes.d.ts +290 -242
- package/lib/sszTypes.js +1 -1
- package/lib/sszTypes.js.map +1 -1
- package/lib/types.d.ts +17 -5
- package/lib/types.js +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/executionAddress.js +1 -1
- package/lib/utils/executionAddress.js.map +1 -1
- package/lib/utils/typeguards.d.ts +2 -1
- package/lib/utils/typeguards.js +6 -0
- package/lib/utils/typeguards.js.map +1 -1
- package/lib/utils/validatorStatus.d.ts +11 -0
- package/lib/utils/validatorStatus.js +35 -0
- package/lib/utils/validatorStatus.js.map +1 -0
- 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
|
/**
|
package/lib/sszTypes.js.map
CHANGED
|
@@ -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,
|
|
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:
|
|
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:
|
|
186
|
-
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
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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,
|
|
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 {
|
|
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
|
package/lib/utils/typeguards.js
CHANGED
|
@@ -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":"
|
|
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.
|
|
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": "
|
|
63
|
-
"lint:fix": "yarn run lint --
|
|
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.
|
|
77
|
-
"@lodestar/params": "
|
|
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": "
|
|
86
|
+
"gitHead": "d861608d683560a99e129e75cf6650d58acbcd4b"
|
|
87
87
|
}
|