@lodestar/types 1.50.0-dev.1f129c79a1 → 1.50.0-dev.20062ed60e
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/gloas/sszTypes.d.ts +2 -0
- package/lib/gloas/sszTypes.d.ts.map +1 -1
- package/lib/gloas/sszTypes.js +2 -0
- package/lib/gloas/sszTypes.js.map +1 -1
- package/lib/gloas/types.d.ts +3 -0
- package/lib/gloas/types.d.ts.map +1 -1
- package/lib/heze/sszTypes.d.ts +2 -68
- package/lib/heze/sszTypes.d.ts.map +1 -1
- package/lib/heze/sszTypes.js +12 -6
- package/lib/heze/sszTypes.js.map +1 -1
- package/lib/heze/types.d.ts +3 -0
- package/lib/heze/types.d.ts.map +1 -1
- package/lib/sszTypes.d.ts +8 -136
- package/lib/sszTypes.d.ts.map +1 -1
- package/lib/types.d.ts +2 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/typeguards.d.ts +2 -2
- package/lib/utils/typeguards.d.ts.map +1 -1
- package/lib/utils/typeguards.js +1 -1
- package/lib/utils/typeguards.js.map +1 -1
- package/package.json +4 -4
- package/src/gloas/sszTypes.ts +2 -0
- package/src/gloas/types.ts +1 -0
- package/src/heze/sszTypes.ts +18 -6
- package/src/heze/types.ts +1 -0
- package/src/types.ts +2 -2
- package/src/utils/typeguards.ts +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ForkPostBellatrix, ForkPostDeneb, ForkPostElectra, ForkPostGloas } from "@lodestar/params";
|
|
1
|
+
import { ForkPostBellatrix, ForkPostDeneb, ForkPostElectra, ForkPostGloas, ForkPreGloas } from "@lodestar/params";
|
|
2
2
|
import { SignedExecutionPayloadEnvelope, SignedExecutionPayloadEnvelopeContents } from "../gloas/types.js";
|
|
3
3
|
import { Attestation, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, BlockContents, DataColumnSidecar, ExecutionPayload, ExecutionPayloadAndBlobsBundle, ExecutionPayloadHeader, LightClientFinalityUpdate, LightClientUpdate, SignedBeaconBlock, SignedBlindedBeaconBlock, SignedBlockContents, SingleAttestation } from "../types.js";
|
|
4
4
|
export declare function isExecutionPayload<F extends ForkPostBellatrix>(payload: ExecutionPayload<F> | ExecutionPayloadHeader<F>): payload is ExecutionPayload<F>;
|
|
@@ -8,7 +8,7 @@ export declare function isBlindedBeaconBlock<F extends ForkPostBellatrix>(block:
|
|
|
8
8
|
export declare function isBlindedSignedBeaconBlock<F extends ForkPostBellatrix>(signedBlock: SignedBeaconBlock | SignedBlockContents): signedBlock is SignedBlindedBeaconBlock<F>;
|
|
9
9
|
export declare function isBlindedBeaconBlockBody<F extends ForkPostBellatrix>(body: BeaconBlockBody | BlindedBeaconBlockBody): body is BlindedBeaconBlockBody<F>;
|
|
10
10
|
export declare function isDenebBlockContents(data: BeaconBlock | BlockContents | SignedBeaconBlock | SignedBlockContents): data is BlockContents<ForkPostDeneb>;
|
|
11
|
-
export declare function isDenebSignedBlockContents(data: BeaconBlock | BlockContents | SignedBeaconBlock | SignedBlockContents): data is SignedBlockContents<ForkPostDeneb>;
|
|
11
|
+
export declare function isDenebSignedBlockContents(data: BeaconBlock | BlockContents | SignedBeaconBlock | SignedBlockContents): data is SignedBlockContents<ForkPostDeneb & ForkPreGloas>;
|
|
12
12
|
export declare function isElectraAttestation(attestation: Attestation): attestation is Attestation<ForkPostElectra>;
|
|
13
13
|
export declare function isElectraSingleAttestation(singleAttestation: SingleAttestation): singleAttestation is SingleAttestation<ForkPostElectra>;
|
|
14
14
|
export declare function isElectraLightClientUpdate(update: LightClientUpdate): update is LightClientUpdate<ForkPostElectra>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,
|
|
1
|
+
{"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/typeguards.js
CHANGED
|
@@ -25,7 +25,7 @@ export function isDenebBlockContents(data) {
|
|
|
25
25
|
return data.kzgProofs !== undefined;
|
|
26
26
|
}
|
|
27
27
|
export function isDenebSignedBlockContents(data) {
|
|
28
|
-
return data.kzgProofs !== undefined;
|
|
28
|
+
return "kzgProofs" in data && data.kzgProofs !== undefined;
|
|
29
29
|
}
|
|
30
30
|
export function isElectraAttestation(attestation) {
|
|
31
31
|
return attestation.committeeBits !== undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAM3B,MAAM,kBAAkB,CAAC;AAqB1B,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,IAA6E;IAE7E,OAAQ,IAAsD,CAAC,WAAW,KAAK,SAAS,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA4E;IAE5E,OAAQ,KAAqB,CAAC,IAAI,KAAK,IAAI,IAAI,wBAAwB,CAAE,KAAqB,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAoD;IAEpD,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,oBAAoB,CAClC,IAA2E;IAE3E,OAAQ,IAAqC,CAAC,SAAS,KAAK,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAA2E;IAE3E,OAAO,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,OAAQ,WAA4C,CAAC,aAAa,KAAK,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,iBAAoC;IAEpC,OAAQ,iBAAwD,CAAC,cAAc,KAAK,SAAS,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAyB;IAClE,MAAM,iBAAiB,GAAG,MAA4C,CAAC;IACvE,OAAO,CACL,iBAAiB,CAAC,cAAc,KAAK,SAAS;QAC9C,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,4BAA4B;YACvE,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,0BAA0B,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,MAAiC;IAEjC,MAAM,iBAAiB,GAAG,MAA4C,CAAC;IACvE,OAAO,CACL,iBAAiB,CAAC,cAAc,KAAK,SAAS;QAC9C,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,4BAA4B;YACvE,iBAAiB,CAAC,cAAc,CAAC,MAAM,KAAK,0BAA0B,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAQ,KAAK,CAAC,IAAuC,CAAC,yBAAyB,KAAK,SAAS,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA0B;IACjE,OAAQ,OAA4C,CAAC,eAAe,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,cAAuF;IAEvF,OAAQ,cAAyD,CAAC,8BAA8B,KAAK,SAAS,CAAC;AACjH,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.50.0-dev.
|
|
14
|
+
"version": "1.50.0-dev.20062ed60e",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
},
|
|
82
82
|
"types": "lib/index.d.ts",
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@chainsafe/ssz": "^1.8.
|
|
85
|
-
"@lodestar/params": "^1.50.0-dev.
|
|
84
|
+
"@chainsafe/ssz": "^1.8.1",
|
|
85
|
+
"@lodestar/params": "^1.50.0-dev.20062ed60e",
|
|
86
86
|
"ethereum-cryptography": "^2.0.0"
|
|
87
87
|
},
|
|
88
88
|
"keywords": [
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"beacon",
|
|
92
92
|
"blockchain"
|
|
93
93
|
],
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "ec866a47abbc8e41a6b314235496afd0212f38c8"
|
|
95
95
|
}
|
package/src/gloas/sszTypes.ts
CHANGED
|
@@ -770,6 +770,8 @@ export const SSEPayloadAttributes = new ContainerType(
|
|
|
770
770
|
// parentBlockNumber: UintNum64, // Removed in GLOAS:EIP7732
|
|
771
771
|
parentBlockRoot: Root,
|
|
772
772
|
parentBlockHash: Root,
|
|
773
|
+
safeBlockHash: Root, // New in GLOAS
|
|
774
|
+
finalizedBlockHash: Root, // New in GLOAS
|
|
773
775
|
payloadAttributes: PayloadAttributes,
|
|
774
776
|
},
|
|
775
777
|
{typeName: "SSEPayloadAttributes", jsonCase: "eth2"}
|
package/src/gloas/types.ts
CHANGED
|
@@ -63,6 +63,7 @@ export type BeaconBlockBody = ValueOf<typeof ssz.BeaconBlockBody>;
|
|
|
63
63
|
export type BeaconBlock = ValueOf<typeof ssz.BeaconBlock>;
|
|
64
64
|
export type SignedBeaconBlock = ValueOf<typeof ssz.SignedBeaconBlock>;
|
|
65
65
|
export type BlockContents = ValueOf<typeof ssz.BlockContents>;
|
|
66
|
+
export type SignedBlockContents = {signedBlock: SignedBeaconBlock};
|
|
66
67
|
export type LightClientHeader = ValueOf<typeof ssz.LightClientHeader>;
|
|
67
68
|
export type LightClientBootstrap = ValueOf<typeof ssz.LightClientBootstrap>;
|
|
68
69
|
export type LightClientUpdate = ValueOf<typeof ssz.LightClientUpdate>;
|
package/src/heze/sszTypes.ts
CHANGED
|
@@ -5,8 +5,8 @@ import {ssz as primitiveSsz} from "../primitive/index.js";
|
|
|
5
5
|
|
|
6
6
|
const {Slot, Root, BLSSignature, ValidatorIndex} = primitiveSsz;
|
|
7
7
|
|
|
8
|
-
function activeFields(count: number): boolean[] {
|
|
9
|
-
return Array.from({length: count}, () =>
|
|
8
|
+
function activeFields(count: number, gaps: number[] = []): boolean[] {
|
|
9
|
+
return Array.from({length: count}, (_, index) => !gaps.includes(index));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export const InclusionListCommittee = new VectorBasicType(ValidatorIndex, INCLUSION_LIST_COMMITTEE_SIZE);
|
|
@@ -60,21 +60,33 @@ export const SignedExecutionPayloadBid = new ContainerType(
|
|
|
60
60
|
export const DataColumnSidecar = gloasSsz.DataColumnSidecar;
|
|
61
61
|
export const DataColumnSidecars = gloasSsz.DataColumnSidecars;
|
|
62
62
|
|
|
63
|
+
const {
|
|
64
|
+
eth1Data: _eth1Data,
|
|
65
|
+
eth1DataVotes: _eth1DataVotes,
|
|
66
|
+
eth1DepositIndex: _eth1DepositIndex,
|
|
67
|
+
depositRequestsStartIndex: _depositRequestsStartIndex,
|
|
68
|
+
...gloasBeaconStateFields
|
|
69
|
+
} = gloasSsz.BeaconState.fields;
|
|
70
|
+
|
|
63
71
|
export const BeaconState = new ProgressiveContainerType(
|
|
64
72
|
{
|
|
65
|
-
...
|
|
73
|
+
...gloasBeaconStateFields,
|
|
66
74
|
latestExecutionPayloadBid: ExecutionPayloadBid, // [Modified in Heze:EIP7805]
|
|
67
75
|
},
|
|
68
|
-
|
|
76
|
+
// [Modified in Heze:EIP8015] gaps keep the surviving generalized indices stable
|
|
77
|
+
activeFields(46, [8, 9, 10, 28]),
|
|
69
78
|
{typeName: "BeaconState", jsonCase: "eth2"}
|
|
70
79
|
);
|
|
71
80
|
|
|
81
|
+
const {eth1Data: _bodyEth1Data, deposits: _deposits, ...gloasBeaconBlockBodyFields} = gloasSsz.BeaconBlockBody.fields;
|
|
82
|
+
|
|
72
83
|
export const BeaconBlockBody = new ProgressiveContainerType(
|
|
73
84
|
{
|
|
74
|
-
...
|
|
85
|
+
...gloasBeaconBlockBodyFields,
|
|
75
86
|
signedExecutionPayloadBid: SignedExecutionPayloadBid, // [Modified in Heze:EIP7805]
|
|
76
87
|
},
|
|
77
|
-
|
|
88
|
+
// [Modified in Heze:EIP8015] gaps keep the surviving generalized indices stable
|
|
89
|
+
activeFields(13, [1, 6]),
|
|
78
90
|
{typeName: "BeaconBlockBody", jsonCase: "eth2", cachePermanentRootStruct: true}
|
|
79
91
|
);
|
|
80
92
|
|
package/src/heze/types.ts
CHANGED
|
@@ -14,4 +14,5 @@ export type BeaconBlockBody = ValueOf<typeof ssz.BeaconBlockBody>;
|
|
|
14
14
|
export type BeaconBlock = ValueOf<typeof ssz.BeaconBlock>;
|
|
15
15
|
export type SignedBeaconBlock = ValueOf<typeof ssz.SignedBeaconBlock>;
|
|
16
16
|
export type BlockContents = ValueOf<typeof ssz.BlockContents>;
|
|
17
|
+
export type SignedBlockContents = {signedBlock: SignedBeaconBlock};
|
|
17
18
|
export type SSEPayloadAttributes = ValueOf<typeof ssz.SSEPayloadAttributes>;
|
package/src/types.ts
CHANGED
|
@@ -317,7 +317,7 @@ type TypesByFork = {
|
|
|
317
317
|
SignedBuilderBid: electra.SignedBuilderBid;
|
|
318
318
|
SSEPayloadAttributes: gloas.SSEPayloadAttributes;
|
|
319
319
|
BlockContents: gloas.BlockContents;
|
|
320
|
-
SignedBlockContents:
|
|
320
|
+
SignedBlockContents: gloas.SignedBlockContents;
|
|
321
321
|
ExecutionPayloadAndBlobsBundle: fulu.ExecutionPayloadAndBlobsBundle;
|
|
322
322
|
BlobsBundle: fulu.BlobsBundle;
|
|
323
323
|
SyncCommittee: altair.SyncCommittee;
|
|
@@ -359,7 +359,7 @@ type TypesByFork = {
|
|
|
359
359
|
SignedBuilderBid: electra.SignedBuilderBid;
|
|
360
360
|
SSEPayloadAttributes: heze.SSEPayloadAttributes;
|
|
361
361
|
BlockContents: heze.BlockContents;
|
|
362
|
-
SignedBlockContents:
|
|
362
|
+
SignedBlockContents: heze.SignedBlockContents;
|
|
363
363
|
ExecutionPayloadAndBlobsBundle: fulu.ExecutionPayloadAndBlobsBundle;
|
|
364
364
|
BlobsBundle: fulu.BlobsBundle;
|
|
365
365
|
SyncCommittee: altair.SyncCommittee;
|
package/src/utils/typeguards.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
ForkPostDeneb,
|
|
6
6
|
ForkPostElectra,
|
|
7
7
|
ForkPostGloas,
|
|
8
|
+
ForkPreGloas,
|
|
8
9
|
} from "@lodestar/params";
|
|
9
10
|
import {SignedExecutionPayloadEnvelope, SignedExecutionPayloadEnvelopeContents} from "../gloas/types.js";
|
|
10
11
|
import {
|
|
@@ -74,8 +75,8 @@ export function isDenebBlockContents(
|
|
|
74
75
|
|
|
75
76
|
export function isDenebSignedBlockContents(
|
|
76
77
|
data: BeaconBlock | BlockContents | SignedBeaconBlock | SignedBlockContents
|
|
77
|
-
): data is SignedBlockContents<ForkPostDeneb> {
|
|
78
|
-
return
|
|
78
|
+
): data is SignedBlockContents<ForkPostDeneb & ForkPreGloas> {
|
|
79
|
+
return "kzgProofs" in data && data.kzgProofs !== undefined;
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
export function isElectraAttestation(attestation: Attestation): attestation is Attestation<ForkPostElectra> {
|