@lodestar/state-transition 1.48.0-dev.7d85330f92 → 1.48.0-dev.b24dce51bf

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 +1 @@
1
- {"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA+B,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAevG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,EACnF,OAAO,CAAC,EAAE,OAAO,CAAC,6BAA6B,GAC9C,IAAI,CAqGN;AAsRD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,GAClF;IACD,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;IACzC,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAuFA"}
1
+ {"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA+B,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAevG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,EACnF,OAAO,CAAC,EAAE,OAAO,CAAC,6BAA6B,GAC9C,IAAI,CAqGN;AAgSD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,GAClF;IACD,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;IACzC,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAuFA"}
@@ -138,7 +138,10 @@ function getBuildersSweepWithdrawals(state, withdrawalIndex, numPriorWithdrawal,
138
138
  if (buildersSweepWithdrawals.length + numPriorWithdrawal >= withdrawalsLimit) {
139
139
  break;
140
140
  }
141
- // Get next builder in turn
141
+ // Get next builder in turn, the spec does not wrap around an out of bounds start index
142
+ if (n === 0 && state.nextWithdrawalBuilderIndex >= builders.length) {
143
+ throw Error(`Next withdrawal builder index ${state.nextWithdrawalBuilderIndex} out of bounds, builders count ${builders.length}`);
144
+ }
142
145
  const builderIndex = (state.nextWithdrawalBuilderIndex + n) % builders.length;
143
146
  const builder = builders.getReadonly(builderIndex);
144
147
  // Get builder balance
@@ -231,7 +234,10 @@ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWit
231
234
  if (sweepWithdrawals.length + numPriorWithdrawal >= MAX_WITHDRAWALS_PER_PAYLOAD) {
232
235
  break;
233
236
  }
234
- // Get next validator in turn
237
+ // Get next validator in turn, the spec does not wrap around an out of bounds start index
238
+ if (n === 0 && nextWithdrawalValidatorIndex >= validators.length) {
239
+ throw Error(`Next withdrawal validator index ${nextWithdrawalValidatorIndex} out of bounds, validators count ${validators.length}`);
240
+ }
235
241
  const validatorIndex = (nextWithdrawalValidatorIndex + n) % validators.length;
236
242
  const validator = validators.getReadonly(validatorIndex);
237
243
  let balance = validatorBalanceAfterWithdrawals.get(validatorIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export type { LightClientUpdateSummary } from "./isBetterUpdate.js";
6
6
  export { isBetterUpdate, toLightClientUpdateSummary } from "./isBetterUpdate.js";
7
7
  export { type ProcessUpdateOpts, getSyncCommitteeAtPeriod, isSafeLightClientUpdate, processLightClientUpdate, } from "./processLightClientUpdate.js";
8
8
  export { type ILightClientStore, LightClientStore, type LightClientStoreEvents, type LightClientUpdateWithSummary, type SyncCommitteeFast, } from "./store.js";
9
- export { getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
9
+ export { getLcExecutionRoot, getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientBootstrap, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
10
10
  export { validateLightClientBootstrap } from "./validateLightClientBootstrap.js";
11
11
  export { validateLightClientUpdate } from "./validateLightClientUpdate.js";
12
12
  export declare class LightclientSpec {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,IAAI,EACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,KAAK,iBAAiB,EAAoB,KAAK,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,cAAc,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,KAAK,iBAAiB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,gCAAgC,EAChC,wBAAwB,EACxB,kCAAkC,EAClC,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,YACE,MAAM,EAAE,YAAY,EACH,IAAI,EAAE,iBAAiB,GAAG,sBAAsB,EACjE,SAAS,EAAE,oBAAoB,EAIhC;IAED,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE3D;IAED,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAUnF;IAED,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,2BAA2B,GAAG,IAAI,CAczF;IAED,WAAW,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAUnC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,IAAI,EACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,KAAK,iBAAiB,EAAoB,KAAK,sBAAsB,EAAC,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,cAAc,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,KAAK,iBAAiB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,wBAAwB,EACxB,kCAAkC,EAClC,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,YACE,MAAM,EAAE,YAAY,EACH,IAAI,EAAE,iBAAiB,GAAG,sBAAsB,EACjE,SAAS,EAAE,oBAAoB,EAIhC;IAED,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE3D;IAED,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAUnF;IAED,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,2BAA2B,GAAG,IAAI,CAczF;IAED,WAAW,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAUnC;CACF"}
@@ -6,7 +6,7 @@ import { ZERO_SYNC_COMMITTEE, getZeroFinalityBranch, getZeroSyncCommitteeBranch
6
6
  export { isBetterUpdate, toLightClientUpdateSummary } from "./isBetterUpdate.js";
7
7
  export { getSyncCommitteeAtPeriod, isSafeLightClientUpdate, processLightClientUpdate, } from "./processLightClientUpdate.js";
8
8
  export { LightClientStore, } from "./store.js";
9
- export { getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
9
+ export { getLcExecutionRoot, getSafetyThreshold, isFinalityUpdate, isSyncCommitteeUpdate, isValidLightClientHeader, normalizeMerkleBranch, upgradeLightClientBootstrap, upgradeLightClientFinalityUpdate, upgradeLightClientHeader, upgradeLightClientOptimisticUpdate, upgradeLightClientStore, upgradeLightClientUpdate, } from "./utils.js";
10
10
  export { validateLightClientBootstrap } from "./validateLightClientBootstrap.js";
11
11
  export { validateLightClientUpdate } from "./validateLightClientUpdate.js";
12
12
  export class LightclientSpec {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lightClient/spec/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { BitArray } from "@chainsafe/ssz";
2
2
  import { ChainForkConfig } from "@lodestar/config";
3
3
  import { ForkName } from "@lodestar/params";
4
- import { BeaconBlockHeader, LightClientFinalityUpdate, LightClientHeader, LightClientOptimisticUpdate, LightClientUpdate, Slot, SyncCommittee } from "@lodestar/types";
5
- import type { LightClientStore, SyncCommitteeFast } from "./store.js";
4
+ import { BeaconBlockHeader, LightClientBootstrap, LightClientFinalityUpdate, LightClientHeader, LightClientOptimisticUpdate, LightClientUpdate, SyncCommittee } from "@lodestar/types";
5
+ import type { ILightClientStore, SyncCommitteeFast } from "./store.js";
6
6
  export declare const GENESIS_SLOT = 0;
7
7
  export declare const ZERO_HASH: Uint8Array<ArrayBuffer>;
8
8
  export declare const ZERO_SYNC_COMMITTEE: import("@chainsafe/ssz").ValueOfFields<{
@@ -36,6 +36,16 @@ export declare function normalizeMerkleBranch(branch: Uint8Array[], gindex: numb
36
36
  export declare function currentSyncCommitteeGindexAtFork(fork: ForkName): number;
37
37
  export declare function finalizedRootGindexAtFork(fork: ForkName): number;
38
38
  export declare function nextSyncCommitteeGindexAtFork(fork: ForkName): number;
39
+ /**
40
+ * Returns the execution root represented by a light-client header.
41
+ *
42
+ * Gloas headers removed `execution` so Pre-Gloas headers upgraded to the Gloas format
43
+ * require reconstruction of the original execution payload header root.
44
+ *
45
+ * Spec: https://github.com/ethereum/consensus-specs/blob/e762dd6e2c45ee05648b5787e7d261279aec226a/specs/gloas/light-client/sync-protocol.md#modified-get_lc_execution_root
46
+ */
47
+ export declare function getLcExecutionRoot(config: ChainForkConfig, header: LightClientHeader): Uint8Array;
48
+ export declare function upgradeLightClientBootstrap(config: ChainForkConfig, targetFork: ForkName, bootstrap: LightClientBootstrap): LightClientBootstrap;
39
49
  export declare function upgradeLightClientHeader(config: ChainForkConfig, targetFork: ForkName, header: LightClientHeader): LightClientHeader;
40
50
  export declare function isValidLightClientHeader(config: ChainForkConfig, header: LightClientHeader): boolean;
41
51
  export declare function upgradeLightClientUpdate(config: ChainForkConfig, targetFork: ForkName, update: LightClientUpdate): LightClientUpdate;
@@ -46,5 +56,5 @@ export declare function upgradeLightClientOptimisticUpdate(config: ChainForkConf
46
56
  * summary that the store generates and maintains. In case store needs to be saved to disk,
47
57
  * this could be required depending on the format the store is saved to the disk
48
58
  */
49
- export declare function upgradeLightClientStore(config: ChainForkConfig, targetFork: ForkName, store: LightClientStore, signatureSlot: Slot): LightClientStore;
59
+ export declare function upgradeLightClientStore(config: ChainForkConfig, targetFork: ForkName, store: ILightClientStore): ILightClientStore;
50
60
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAWL,QAAQ,EAOT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,IAAI,EACJ,aAAa,EAGd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAC,gBAAgB,EAAE,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,SAAS,yBAAqB,CAAC;AAC5C,eAAO,MAAM,mBAAmB;;;EAA0C,CAAC;AAC3E,eAAO,MAAM,WAAW;;;;;;EAA8C,CAAC;AAIvE,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,CAG1E;AAUD,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,aAAa,GAAG,iBAAiB,CAKxF;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,aAAa,CAKtF;AAED,wBAAgB,kBAAkB,CAAC,qBAAqB,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAEvE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAElE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAOxE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAOnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAMjE;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAG3E;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GACf,OAAO,CAMT;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAAE,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GACf,OAAO,CAeT;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAKxF;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQvE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQhE;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQpE;AAUD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CA4EnB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAuEpG;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAUnB;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,yBAAyB,GACxC,yBAAyB,CAS3B;AAED,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,QAAQ,EACpB,gBAAgB,EAAE,2BAA2B,GAC5C,2BAA2B,CAI7B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,IAAI,GAClB,gBAAgB,CAelB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lightClient/spec/utils.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { PublicKey } from "@chainsafe/lodestar-z/blst";
2
2
  import { Tree } from "@chainsafe/persistent-merkle-tree";
3
3
  import { BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX, CURRENT_SYNC_COMMITTEE_GINDEX, CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA, CURRENT_SYNC_COMMITTEE_GINDEX_GLOAS, EXECUTION_BLOCK_HASH_GINDEX, EXECUTION_BLOCK_HASH_GINDEX_DENEB, EXECUTION_BLOCK_HASH_GINDEX_GLOAS, FINALIZED_ROOT_GINDEX, FINALIZED_ROOT_GINDEX_ELECTRA, FINALIZED_ROOT_GINDEX_GLOAS, ForkName, ForkSeq, NEXT_SYNC_COMMITTEE_GINDEX, NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA, NEXT_SYNC_COMMITTEE_GINDEX_GLOAS, isForkPostElectra, isForkPostGloas, } from "@lodestar/params";
4
4
  import { isElectraLightClientUpdate, ssz, } from "@lodestar/types";
5
- import { byteArrayEquals, verifyMerkleBranch } from "@lodestar/utils";
6
- import { computeEpochAtSlot, computeSyncPeriodAtSlot } from "../../util/epoch.js";
5
+ import { byteArrayEquals, hash, verifyMerkleBranch } from "@lodestar/utils";
6
+ import { computeEpochAtSlot } from "../../util/epoch.js";
7
7
  export const GENESIS_SLOT = 0;
8
8
  export const ZERO_HASH = new Uint8Array(32);
9
9
  export const ZERO_SYNC_COMMITTEE = ssz.altair.SyncCommittee.defaultValue();
@@ -130,14 +130,58 @@ function getGindexDepth(gindex) {
130
130
  function getGindexIndex(gindex) {
131
131
  return gindex - 2 ** getGindexDepth(gindex);
132
132
  }
133
+ /**
134
+ * Returns the execution root represented by a light-client header.
135
+ *
136
+ * Gloas headers removed `execution` so Pre-Gloas headers upgraded to the Gloas format
137
+ * require reconstruction of the original execution payload header root.
138
+ *
139
+ * Spec: https://github.com/ethereum/consensus-specs/blob/e762dd6e2c45ee05648b5787e7d261279aec226a/specs/gloas/light-client/sync-protocol.md#modified-get_lc_execution_root
140
+ */
141
+ export function getLcExecutionRoot(config, header) {
142
+ const epoch = computeEpochAtSlot(header.beacon.slot);
143
+ if (!isGloasLightClientHeader(header)) {
144
+ if (epoch < config.CAPELLA_FORK_EPOCH) {
145
+ return ZERO_HASH;
146
+ }
147
+ return config
148
+ .getPostBellatrixForkTypes(header.beacon.slot)
149
+ .ExecutionPayloadHeader.hashTreeRoot(header.execution);
150
+ }
151
+ if (epoch >= config.GLOAS_FORK_EPOCH) {
152
+ return header.executionBlockHash;
153
+ }
154
+ // Reconstruct the pre-Gloas execution payload root for a header upgraded to the Gloas format
155
+ // because the structure is different, `execution` is removed
156
+ const executionPayloadDepth = getGindexDepth(BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX);
157
+ const innerBranch = header.executionBranch.slice(0, -executionPayloadDepth);
158
+ if (epoch >= config.DENEB_FORK_EPOCH) {
159
+ if (header.beacon.slot === GENESIS_SLOT) {
160
+ return ssz.deneb.ExecutionPayloadHeader.hashTreeRoot(ssz.deneb.ExecutionPayloadHeader.defaultValue());
161
+ }
162
+ return computeBranchRoot(header.executionBlockHash, innerBranch, ssz.deneb.ExecutionPayloadHeader.getPathInfo(["blockHash"]).gindex);
163
+ }
164
+ if (epoch >= config.CAPELLA_FORK_EPOCH) {
165
+ if (header.beacon.slot === GENESIS_SLOT) {
166
+ return ssz.capella.ExecutionPayloadHeader.hashTreeRoot(ssz.capella.ExecutionPayloadHeader.defaultValue());
167
+ }
168
+ return computeBranchRoot(header.executionBlockHash, innerBranch, ssz.capella.ExecutionPayloadHeader.getPathInfo(["blockHash"]).gindex);
169
+ }
170
+ return ZERO_HASH;
171
+ }
172
+ export function upgradeLightClientBootstrap(config, targetFork, bootstrap) {
173
+ return {
174
+ ...bootstrap,
175
+ header: upgradeLightClientHeader(config, targetFork, bootstrap.header),
176
+ currentSyncCommitteeBranch: normalizeMerkleBranch(bootstrap.currentSyncCommitteeBranch, currentSyncCommitteeGindexAtFork(targetFork)),
177
+ };
178
+ }
133
179
  export function upgradeLightClientHeader(config, targetFork, header) {
134
180
  const headerFork = config.getForkName(header.beacon.slot);
135
181
  if (ForkSeq[headerFork] >= ForkSeq[targetFork]) {
136
182
  throw Error(`Invalid upgrade request from headerFork=${headerFork} to targetFork=${targetFork}`);
137
183
  }
138
- // We are modifying the same header object, may be we could create a copy, but its
139
- // not required as of now
140
- let upgradedHeader = header;
184
+ let upgradedHeader = { ...header };
141
185
  const startUpgradeFromFork = Object.values(ForkName)[ForkSeq[headerFork] + 1];
142
186
  switch (startUpgradeFromFork) {
143
187
  // biome-ignore lint/suspicious/useDefaultSwitchClauseLast: We want default to evaluate at first to throw error early
@@ -151,22 +195,29 @@ export function upgradeLightClientHeader(config, targetFork, header) {
151
195
  break;
152
196
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
153
197
  case ForkName.capella:
154
- upgradedHeader.execution =
155
- ssz.capella.LightClientHeader.fields.execution.defaultValue();
156
- upgradedHeader.executionBranch =
157
- ssz.capella.LightClientHeader.fields.executionBranch.defaultValue();
198
+ upgradedHeader = {
199
+ ...upgradedHeader,
200
+ execution: ssz.capella.LightClientHeader.fields.execution.defaultValue(),
201
+ executionBranch: ssz.capella.LightClientHeader.fields.executionBranch.defaultValue(),
202
+ };
158
203
  // Break if no further upgradation is required else fall through
159
204
  if (ForkSeq[targetFork] <= ForkSeq.capella)
160
205
  break;
161
206
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
162
- case ForkName.deneb:
163
- upgradedHeader.execution.blobGasUsed =
164
- ssz.deneb.LightClientHeader.fields.execution.fields.blobGasUsed.defaultValue();
165
- upgradedHeader.execution.excessBlobGas =
166
- ssz.deneb.LightClientHeader.fields.execution.fields.excessBlobGas.defaultValue();
207
+ case ForkName.deneb: {
208
+ const capellaHeader = upgradedHeader;
209
+ upgradedHeader = {
210
+ ...capellaHeader,
211
+ execution: {
212
+ ...capellaHeader.execution,
213
+ blobGasUsed: ssz.deneb.LightClientHeader.fields.execution.fields.blobGasUsed.defaultValue(),
214
+ excessBlobGas: ssz.deneb.LightClientHeader.fields.execution.fields.excessBlobGas.defaultValue(),
215
+ },
216
+ };
167
217
  // Break if no further upgradation is required else fall through
168
218
  if (ForkSeq[targetFork] <= ForkSeq.deneb)
169
219
  break;
220
+ }
170
221
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
171
222
  case ForkName.electra:
172
223
  // No changes to LightClientHeader in Electra
@@ -229,40 +280,63 @@ export function isValidLightClientHeader(config, header) {
229
280
  .ExecutionPayloadHeader.hashTreeRoot(header.execution), header.executionBranch, getGindexDepth(BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX), getGindexIndex(BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX), header.beacon.bodyRoot);
230
281
  }
231
282
  export function upgradeLightClientUpdate(config, targetFork, update) {
232
- update.attestedHeader = upgradeLightClientHeader(config, targetFork, update.attestedHeader);
233
- update.finalizedHeader = upgradeLightClientHeader(config, targetFork, update.finalizedHeader);
234
- update.nextSyncCommitteeBranch = normalizeMerkleBranch(update.nextSyncCommitteeBranch, nextSyncCommitteeGindexAtFork(targetFork));
235
- update.finalityBranch = normalizeMerkleBranch(update.finalityBranch, finalizedRootGindexAtFork(targetFork));
236
- return update;
283
+ return {
284
+ ...update,
285
+ attestedHeader: upgradeLightClientHeader(config, targetFork, update.attestedHeader),
286
+ finalizedHeader: upgradeLightClientHeader(config, targetFork, update.finalizedHeader),
287
+ nextSyncCommitteeBranch: normalizeMerkleBranch(update.nextSyncCommitteeBranch, nextSyncCommitteeGindexAtFork(targetFork)),
288
+ finalityBranch: normalizeMerkleBranch(update.finalityBranch, finalizedRootGindexAtFork(targetFork)),
289
+ };
237
290
  }
238
291
  export function upgradeLightClientFinalityUpdate(config, targetFork, finalityUpdate) {
239
- finalityUpdate.attestedHeader = upgradeLightClientHeader(config, targetFork, finalityUpdate.attestedHeader);
240
- finalityUpdate.finalizedHeader = upgradeLightClientHeader(config, targetFork, finalityUpdate.finalizedHeader);
241
- finalityUpdate.finalityBranch = normalizeMerkleBranch(finalityUpdate.finalityBranch, finalizedRootGindexAtFork(targetFork));
242
- return finalityUpdate;
292
+ return {
293
+ ...finalityUpdate,
294
+ attestedHeader: upgradeLightClientHeader(config, targetFork, finalityUpdate.attestedHeader),
295
+ finalizedHeader: upgradeLightClientHeader(config, targetFork, finalityUpdate.finalizedHeader),
296
+ finalityBranch: normalizeMerkleBranch(finalityUpdate.finalityBranch, finalizedRootGindexAtFork(targetFork)),
297
+ };
243
298
  }
244
299
  export function upgradeLightClientOptimisticUpdate(config, targetFork, optimisticUpdate) {
245
- optimisticUpdate.attestedHeader = upgradeLightClientHeader(config, targetFork, optimisticUpdate.attestedHeader);
246
- return optimisticUpdate;
300
+ return {
301
+ ...optimisticUpdate,
302
+ attestedHeader: upgradeLightClientHeader(config, targetFork, optimisticUpdate.attestedHeader),
303
+ };
247
304
  }
248
305
  /**
249
306
  * Currently this upgradation is not required because all processing is done based on the
250
307
  * summary that the store generates and maintains. In case store needs to be saved to disk,
251
308
  * this could be required depending on the format the store is saved to the disk
252
309
  */
253
- export function upgradeLightClientStore(config, targetFork, store, signatureSlot) {
254
- const updateSignaturePeriod = computeSyncPeriodAtSlot(signatureSlot);
255
- const bestValidUpdate = store.bestValidUpdates.get(updateSignaturePeriod);
256
- if (bestValidUpdate) {
257
- store.bestValidUpdates.set(updateSignaturePeriod, {
258
- update: upgradeLightClientUpdate(config, targetFork, bestValidUpdate.update),
259
- summary: bestValidUpdate.summary,
310
+ export function upgradeLightClientStore(config, targetFork, store) {
311
+ const bestValidUpdates = new Map();
312
+ for (const [period, entry] of store.bestValidUpdates) {
313
+ bestValidUpdates.set(period, {
314
+ ...entry,
315
+ update: upgradeLightClientUpdate(config, targetFork, entry.update),
260
316
  });
261
317
  }
262
- store.finalizedHeader = upgradeLightClientHeader(config, targetFork, store.finalizedHeader);
263
- store.optimisticHeader = upgradeLightClientHeader(config, targetFork, store.optimisticHeader);
318
+ const finalizedHeader = upgradeLightClientHeader(config, targetFork, store.finalizedHeader);
319
+ const optimisticHeader = upgradeLightClientHeader(config, targetFork, store.optimisticHeader);
320
+ for (const [period, bestValidUpdate] of bestValidUpdates) {
321
+ store.bestValidUpdates.set(period, bestValidUpdate);
322
+ }
323
+ store.finalizedHeader = finalizedHeader;
324
+ store.optimisticHeader = optimisticHeader;
264
325
  return store;
265
326
  }
327
+ function computeBranchRoot(leaf, branch, gindex) {
328
+ const depth = getGindexDepth(Number(gindex));
329
+ if (branch.length < depth) {
330
+ throw Error(`Invalid Merkle branch length ${branch.length}, expected at least ${depth}`);
331
+ }
332
+ const proof = branch.slice(-depth);
333
+ const index = getGindexIndex(Number(gindex));
334
+ let root = leaf;
335
+ for (let i = 0; i < depth; i++) {
336
+ root = Math.floor(index / 2 ** i) % 2 === 1 ? hash(proof[i], root) : hash(root, proof[i]);
337
+ }
338
+ return root;
339
+ }
266
340
  function isGloasLightClientHeader(header) {
267
341
  return header.executionBlockHash !== undefined;
268
342
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lightClient/spec/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lightClient/spec/utils.ts"],"names":[],"mappings":"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"}
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.48.0-dev.7d85330f92",
14
+ "version": "1.48.0-dev.b24dce51bf",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -70,14 +70,14 @@
70
70
  "@chainsafe/persistent-merkle-tree": "^1.3.1",
71
71
  "@chainsafe/ssz": "^1.6.3",
72
72
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
73
- "@lodestar/config": "^1.48.0-dev.7d85330f92",
74
- "@lodestar/params": "^1.48.0-dev.7d85330f92",
75
- "@lodestar/types": "^1.48.0-dev.7d85330f92",
76
- "@lodestar/utils": "^1.48.0-dev.7d85330f92",
73
+ "@lodestar/config": "^1.48.0-dev.b24dce51bf",
74
+ "@lodestar/params": "^1.48.0-dev.b24dce51bf",
75
+ "@lodestar/types": "^1.48.0-dev.b24dce51bf",
76
+ "@lodestar/utils": "^1.48.0-dev.b24dce51bf",
77
77
  "@vekexasia/bigint-buffer2": "^1.1.1"
78
78
  },
79
79
  "devDependencies": {
80
- "@lodestar/api": "^1.48.0-dev.7d85330f92"
80
+ "@lodestar/api": "^1.48.0-dev.b24dce51bf"
81
81
  },
82
82
  "keywords": [
83
83
  "ethereum",
@@ -85,5 +85,5 @@
85
85
  "beacon",
86
86
  "blockchain"
87
87
  ],
88
- "gitHead": "1b3d73ee74bc11cf1b571d48e5b876a0668e73f8"
88
+ "gitHead": "9b24aa749948a2c911a5004d6dcfb0ee83858e6e"
89
89
  }
@@ -212,7 +212,12 @@ function getBuildersSweepWithdrawals(
212
212
  break;
213
213
  }
214
214
 
215
- // Get next builder in turn
215
+ // Get next builder in turn, the spec does not wrap around an out of bounds start index
216
+ if (n === 0 && state.nextWithdrawalBuilderIndex >= builders.length) {
217
+ throw Error(
218
+ `Next withdrawal builder index ${state.nextWithdrawalBuilderIndex} out of bounds, builders count ${builders.length}`
219
+ );
220
+ }
216
221
  const builderIndex = (state.nextWithdrawalBuilderIndex + n) % builders.length;
217
222
  const builder = builders.getReadonly(builderIndex);
218
223
 
@@ -340,7 +345,12 @@ function getValidatorsSweepWithdrawals(
340
345
  break;
341
346
  }
342
347
 
343
- // Get next validator in turn
348
+ // Get next validator in turn, the spec does not wrap around an out of bounds start index
349
+ if (n === 0 && nextWithdrawalValidatorIndex >= validators.length) {
350
+ throw Error(
351
+ `Next withdrawal validator index ${nextWithdrawalValidatorIndex} out of bounds, validators count ${validators.length}`
352
+ );
353
+ }
344
354
  const validatorIndex = (nextWithdrawalValidatorIndex + n) % validators.length;
345
355
 
346
356
  const validator = validators.getReadonly(validatorIndex);
@@ -32,11 +32,13 @@ export {
32
32
  type SyncCommitteeFast,
33
33
  } from "./store.js";
34
34
  export {
35
+ getLcExecutionRoot,
35
36
  getSafetyThreshold,
36
37
  isFinalityUpdate,
37
38
  isSyncCommitteeUpdate,
38
39
  isValidLightClientHeader,
39
40
  normalizeMerkleBranch,
41
+ upgradeLightClientBootstrap,
40
42
  upgradeLightClientFinalityUpdate,
41
43
  upgradeLightClientHeader,
42
44
  upgradeLightClientOptimisticUpdate,
@@ -23,18 +23,18 @@ import {
23
23
  } from "@lodestar/params";
24
24
  import {
25
25
  BeaconBlockHeader,
26
+ LightClientBootstrap,
26
27
  LightClientFinalityUpdate,
27
28
  LightClientHeader,
28
29
  LightClientOptimisticUpdate,
29
30
  LightClientUpdate,
30
- Slot,
31
31
  SyncCommittee,
32
32
  isElectraLightClientUpdate,
33
33
  ssz,
34
34
  } from "@lodestar/types";
35
- import {byteArrayEquals, verifyMerkleBranch} from "@lodestar/utils";
36
- import {computeEpochAtSlot, computeSyncPeriodAtSlot} from "../../util/epoch.js";
37
- import type {LightClientStore, SyncCommitteeFast} from "./store.js";
35
+ import {byteArrayEquals, hash, verifyMerkleBranch} from "@lodestar/utils";
36
+ import {computeEpochAtSlot} from "../../util/epoch.js";
37
+ import type {ILightClientStore, SyncCommitteeFast} from "./store.js";
38
38
 
39
39
  export const GENESIS_SLOT = 0;
40
40
  export const ZERO_HASH = new Uint8Array(32);
@@ -201,6 +201,76 @@ function getGindexIndex(gindex: number): number {
201
201
  return gindex - 2 ** getGindexDepth(gindex);
202
202
  }
203
203
 
204
+ /**
205
+ * Returns the execution root represented by a light-client header.
206
+ *
207
+ * Gloas headers removed `execution` so Pre-Gloas headers upgraded to the Gloas format
208
+ * require reconstruction of the original execution payload header root.
209
+ *
210
+ * Spec: https://github.com/ethereum/consensus-specs/blob/e762dd6e2c45ee05648b5787e7d261279aec226a/specs/gloas/light-client/sync-protocol.md#modified-get_lc_execution_root
211
+ */
212
+ export function getLcExecutionRoot(config: ChainForkConfig, header: LightClientHeader): Uint8Array {
213
+ const epoch = computeEpochAtSlot(header.beacon.slot);
214
+
215
+ if (!isGloasLightClientHeader(header)) {
216
+ if (epoch < config.CAPELLA_FORK_EPOCH) {
217
+ return ZERO_HASH;
218
+ }
219
+
220
+ return config
221
+ .getPostBellatrixForkTypes(header.beacon.slot)
222
+ .ExecutionPayloadHeader.hashTreeRoot((header as LightClientHeader<ForkName.capella>).execution);
223
+ }
224
+
225
+ if (epoch >= config.GLOAS_FORK_EPOCH) {
226
+ return header.executionBlockHash;
227
+ }
228
+
229
+ // Reconstruct the pre-Gloas execution payload root for a header upgraded to the Gloas format
230
+ // because the structure is different, `execution` is removed
231
+ const executionPayloadDepth = getGindexDepth(BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX);
232
+ const innerBranch = header.executionBranch.slice(0, -executionPayloadDepth);
233
+
234
+ if (epoch >= config.DENEB_FORK_EPOCH) {
235
+ if (header.beacon.slot === GENESIS_SLOT) {
236
+ return ssz.deneb.ExecutionPayloadHeader.hashTreeRoot(ssz.deneb.ExecutionPayloadHeader.defaultValue());
237
+ }
238
+ return computeBranchRoot(
239
+ header.executionBlockHash,
240
+ innerBranch,
241
+ ssz.deneb.ExecutionPayloadHeader.getPathInfo(["blockHash"]).gindex
242
+ );
243
+ }
244
+
245
+ if (epoch >= config.CAPELLA_FORK_EPOCH) {
246
+ if (header.beacon.slot === GENESIS_SLOT) {
247
+ return ssz.capella.ExecutionPayloadHeader.hashTreeRoot(ssz.capella.ExecutionPayloadHeader.defaultValue());
248
+ }
249
+ return computeBranchRoot(
250
+ header.executionBlockHash,
251
+ innerBranch,
252
+ ssz.capella.ExecutionPayloadHeader.getPathInfo(["blockHash"]).gindex
253
+ );
254
+ }
255
+
256
+ return ZERO_HASH;
257
+ }
258
+
259
+ export function upgradeLightClientBootstrap(
260
+ config: ChainForkConfig,
261
+ targetFork: ForkName,
262
+ bootstrap: LightClientBootstrap
263
+ ): LightClientBootstrap {
264
+ return {
265
+ ...bootstrap,
266
+ header: upgradeLightClientHeader(config, targetFork, bootstrap.header),
267
+ currentSyncCommitteeBranch: normalizeMerkleBranch(
268
+ bootstrap.currentSyncCommitteeBranch,
269
+ currentSyncCommitteeGindexAtFork(targetFork)
270
+ ),
271
+ };
272
+ }
273
+
204
274
  export function upgradeLightClientHeader(
205
275
  config: ChainForkConfig,
206
276
  targetFork: ForkName,
@@ -211,9 +281,7 @@ export function upgradeLightClientHeader(
211
281
  throw Error(`Invalid upgrade request from headerFork=${headerFork} to targetFork=${targetFork}`);
212
282
  }
213
283
 
214
- // We are modifying the same header object, may be we could create a copy, but its
215
- // not required as of now
216
- let upgradedHeader = header;
284
+ let upgradedHeader = {...header} as LightClientHeader;
217
285
  const startUpgradeFromFork = Object.values(ForkName)[ForkSeq[headerFork] + 1];
218
286
 
219
287
  switch (startUpgradeFromFork) {
@@ -231,23 +299,30 @@ export function upgradeLightClientHeader(
231
299
 
232
300
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
233
301
  case ForkName.capella:
234
- (upgradedHeader as LightClientHeader<ForkName.capella>).execution =
235
- ssz.capella.LightClientHeader.fields.execution.defaultValue();
236
- (upgradedHeader as LightClientHeader<ForkName.capella>).executionBranch =
237
- ssz.capella.LightClientHeader.fields.executionBranch.defaultValue();
302
+ upgradedHeader = {
303
+ ...upgradedHeader,
304
+ execution: ssz.capella.LightClientHeader.fields.execution.defaultValue(),
305
+ executionBranch: ssz.capella.LightClientHeader.fields.executionBranch.defaultValue(),
306
+ } as LightClientHeader<ForkName.capella>;
238
307
 
239
308
  // Break if no further upgradation is required else fall through
240
309
  if (ForkSeq[targetFork] <= ForkSeq.capella) break;
241
310
 
242
311
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
243
- case ForkName.deneb:
244
- (upgradedHeader as LightClientHeader<ForkName.deneb>).execution.blobGasUsed =
245
- ssz.deneb.LightClientHeader.fields.execution.fields.blobGasUsed.defaultValue();
246
- (upgradedHeader as LightClientHeader<ForkName.deneb>).execution.excessBlobGas =
247
- ssz.deneb.LightClientHeader.fields.execution.fields.excessBlobGas.defaultValue();
312
+ case ForkName.deneb: {
313
+ const capellaHeader = upgradedHeader as LightClientHeader<ForkName.capella>;
314
+ upgradedHeader = {
315
+ ...capellaHeader,
316
+ execution: {
317
+ ...capellaHeader.execution,
318
+ blobGasUsed: ssz.deneb.LightClientHeader.fields.execution.fields.blobGasUsed.defaultValue(),
319
+ excessBlobGas: ssz.deneb.LightClientHeader.fields.execution.fields.excessBlobGas.defaultValue(),
320
+ },
321
+ } as LightClientHeader<ForkName.deneb>;
248
322
 
249
323
  // Break if no further upgradation is required else fall through
250
324
  if (ForkSeq[targetFork] <= ForkSeq.deneb) break;
325
+ }
251
326
 
252
327
  // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
253
328
  case ForkName.electra:
@@ -361,15 +436,16 @@ export function upgradeLightClientUpdate(
361
436
  targetFork: ForkName,
362
437
  update: LightClientUpdate
363
438
  ): LightClientUpdate {
364
- update.attestedHeader = upgradeLightClientHeader(config, targetFork, update.attestedHeader);
365
- update.finalizedHeader = upgradeLightClientHeader(config, targetFork, update.finalizedHeader);
366
- update.nextSyncCommitteeBranch = normalizeMerkleBranch(
367
- update.nextSyncCommitteeBranch,
368
- nextSyncCommitteeGindexAtFork(targetFork)
369
- );
370
- update.finalityBranch = normalizeMerkleBranch(update.finalityBranch, finalizedRootGindexAtFork(targetFork));
371
-
372
- return update;
439
+ return {
440
+ ...update,
441
+ attestedHeader: upgradeLightClientHeader(config, targetFork, update.attestedHeader),
442
+ finalizedHeader: upgradeLightClientHeader(config, targetFork, update.finalizedHeader),
443
+ nextSyncCommitteeBranch: normalizeMerkleBranch(
444
+ update.nextSyncCommitteeBranch,
445
+ nextSyncCommitteeGindexAtFork(targetFork)
446
+ ),
447
+ finalityBranch: normalizeMerkleBranch(update.finalityBranch, finalizedRootGindexAtFork(targetFork)),
448
+ };
373
449
  }
374
450
 
375
451
  export function upgradeLightClientFinalityUpdate(
@@ -377,14 +453,12 @@ export function upgradeLightClientFinalityUpdate(
377
453
  targetFork: ForkName,
378
454
  finalityUpdate: LightClientFinalityUpdate
379
455
  ): LightClientFinalityUpdate {
380
- finalityUpdate.attestedHeader = upgradeLightClientHeader(config, targetFork, finalityUpdate.attestedHeader);
381
- finalityUpdate.finalizedHeader = upgradeLightClientHeader(config, targetFork, finalityUpdate.finalizedHeader);
382
- finalityUpdate.finalityBranch = normalizeMerkleBranch(
383
- finalityUpdate.finalityBranch,
384
- finalizedRootGindexAtFork(targetFork)
385
- );
386
-
387
- return finalityUpdate;
456
+ return {
457
+ ...finalityUpdate,
458
+ attestedHeader: upgradeLightClientHeader(config, targetFork, finalityUpdate.attestedHeader),
459
+ finalizedHeader: upgradeLightClientHeader(config, targetFork, finalityUpdate.finalizedHeader),
460
+ finalityBranch: normalizeMerkleBranch(finalityUpdate.finalityBranch, finalizedRootGindexAtFork(targetFork)),
461
+ };
388
462
  }
389
463
 
390
464
  export function upgradeLightClientOptimisticUpdate(
@@ -392,9 +466,10 @@ export function upgradeLightClientOptimisticUpdate(
392
466
  targetFork: ForkName,
393
467
  optimisticUpdate: LightClientOptimisticUpdate
394
468
  ): LightClientOptimisticUpdate {
395
- optimisticUpdate.attestedHeader = upgradeLightClientHeader(config, targetFork, optimisticUpdate.attestedHeader);
396
-
397
- return optimisticUpdate;
469
+ return {
470
+ ...optimisticUpdate,
471
+ attestedHeader: upgradeLightClientHeader(config, targetFork, optimisticUpdate.attestedHeader),
472
+ };
398
473
  }
399
474
 
400
475
  /**
@@ -405,25 +480,44 @@ export function upgradeLightClientOptimisticUpdate(
405
480
  export function upgradeLightClientStore(
406
481
  config: ChainForkConfig,
407
482
  targetFork: ForkName,
408
- store: LightClientStore,
409
- signatureSlot: Slot
410
- ): LightClientStore {
411
- const updateSignaturePeriod = computeSyncPeriodAtSlot(signatureSlot);
412
- const bestValidUpdate = store.bestValidUpdates.get(updateSignaturePeriod);
413
-
414
- if (bestValidUpdate) {
415
- store.bestValidUpdates.set(updateSignaturePeriod, {
416
- update: upgradeLightClientUpdate(config, targetFork, bestValidUpdate.update),
417
- summary: bestValidUpdate.summary,
483
+ store: ILightClientStore
484
+ ): ILightClientStore {
485
+ const bestValidUpdates = new Map();
486
+
487
+ for (const [period, entry] of store.bestValidUpdates) {
488
+ bestValidUpdates.set(period, {
489
+ ...entry,
490
+ update: upgradeLightClientUpdate(config, targetFork, entry.update),
418
491
  });
419
492
  }
493
+ const finalizedHeader = upgradeLightClientHeader(config, targetFork, store.finalizedHeader);
494
+ const optimisticHeader = upgradeLightClientHeader(config, targetFork, store.optimisticHeader);
420
495
 
421
- store.finalizedHeader = upgradeLightClientHeader(config, targetFork, store.finalizedHeader);
422
- store.optimisticHeader = upgradeLightClientHeader(config, targetFork, store.optimisticHeader);
496
+ for (const [period, bestValidUpdate] of bestValidUpdates) {
497
+ store.bestValidUpdates.set(period, bestValidUpdate);
498
+ }
499
+ store.finalizedHeader = finalizedHeader;
500
+ store.optimisticHeader = optimisticHeader;
423
501
 
424
502
  return store;
425
503
  }
426
504
 
505
+ function computeBranchRoot(leaf: Uint8Array, branch: Uint8Array[], gindex: bigint): Uint8Array {
506
+ const depth = getGindexDepth(Number(gindex));
507
+ if (branch.length < depth) {
508
+ throw Error(`Invalid Merkle branch length ${branch.length}, expected at least ${depth}`);
509
+ }
510
+ const proof = branch.slice(-depth);
511
+ const index = getGindexIndex(Number(gindex));
512
+ let root = leaf;
513
+
514
+ for (let i = 0; i < depth; i++) {
515
+ root = Math.floor(index / 2 ** i) % 2 === 1 ? hash(proof[i], root) : hash(root, proof[i]);
516
+ }
517
+
518
+ return root;
519
+ }
520
+
427
521
  function isGloasLightClientHeader(header: LightClientHeader): header is LightClientHeader<ForkName.gloas> {
428
522
  return (header as LightClientHeader<ForkName.gloas>).executionBlockHash !== undefined;
429
523
  }