@lodestar/types 1.50.0-dev.456b75a81e → 1.50.0-dev.4b00f7bf39

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.
@@ -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":"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"}
1
+ {"version":3,"file":"typeguards.d.ts","sourceRoot":"","sources":["../../src/utils/typeguards.ts"],"names":[],"mappings":"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"}
@@ -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,GAK3B,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,OAAQ,IAA2C,CAAC,SAAS,KAAK,SAAS,CAAC;AAC9E,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"}
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.456b75a81e",
14
+ "version": "1.50.0-dev.4b00f7bf39",
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.0",
85
- "@lodestar/params": "^1.50.0-dev.456b75a81e",
84
+ "@chainsafe/ssz": "^1.8.1",
85
+ "@lodestar/params": "^1.50.0-dev.4b00f7bf39",
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": "9ab4f19de025494c800c548e990575102564e813"
94
+ "gitHead": "627c08bc9ff1154c5643e984c443fe8b99a2cae3"
95
95
  }
@@ -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"}
@@ -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>;
@@ -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}, () => true);
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
- ...gloasSsz.BeaconState.fields,
73
+ ...gloasBeaconStateFields,
66
74
  latestExecutionPayloadBid: ExecutionPayloadBid, // [Modified in Heze:EIP7805]
67
75
  },
68
- activeFields(46),
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
- ...gloasSsz.BeaconBlockBody.fields,
85
+ ...gloasBeaconBlockBodyFields,
75
86
  signedExecutionPayloadBid: SignedExecutionPayloadBid, // [Modified in Heze:EIP7805]
76
87
  },
77
- activeFields(13),
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: fulu.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: fulu.SignedBlockContents;
362
+ SignedBlockContents: heze.SignedBlockContents;
363
363
  ExecutionPayloadAndBlobsBundle: fulu.ExecutionPayloadAndBlobsBundle;
364
364
  BlobsBundle: fulu.BlobsBundle;
365
365
  SyncCommittee: altair.SyncCommittee;
@@ -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 (data as SignedBlockContents<ForkPostDeneb>).kzgProofs !== undefined;
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> {