@lodestar/state-transition 1.41.0-dev.a35cbde8b3 → 1.41.0-dev.aeb5a213ee

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 (37) hide show
  1. package/lib/cache/stateCache.d.ts +1 -1
  2. package/lib/cache/stateCache.d.ts.map +1 -1
  3. package/lib/index.d.ts +2 -0
  4. package/lib/index.d.ts.map +1 -1
  5. package/lib/index.js +1 -0
  6. package/lib/index.js.map +1 -1
  7. package/lib/lightClient/proofs.d.ts +10 -0
  8. package/lib/lightClient/proofs.d.ts.map +1 -0
  9. package/lib/lightClient/proofs.js +63 -0
  10. package/lib/lightClient/proofs.js.map +1 -0
  11. package/lib/lightClient/types.d.ts +34 -0
  12. package/lib/lightClient/types.d.ts.map +1 -0
  13. package/lib/lightClient/types.js +2 -0
  14. package/lib/lightClient/types.js.map +1 -0
  15. package/lib/stateView/beaconStateView.d.ts +144 -0
  16. package/lib/stateView/beaconStateView.d.ts.map +1 -0
  17. package/lib/stateView/beaconStateView.js +498 -0
  18. package/lib/stateView/beaconStateView.js.map +1 -0
  19. package/lib/stateView/index.d.ts +3 -0
  20. package/lib/stateView/index.d.ts.map +1 -0
  21. package/lib/stateView/index.js +3 -0
  22. package/lib/stateView/index.js.map +1 -0
  23. package/lib/stateView/interface.d.ts +118 -0
  24. package/lib/stateView/interface.d.ts.map +1 -0
  25. package/lib/stateView/interface.js +2 -0
  26. package/lib/stateView/interface.js.map +1 -0
  27. package/lib/util/weakSubjectivity.js +1 -1
  28. package/lib/util/weakSubjectivity.js.map +1 -1
  29. package/package.json +7 -7
  30. package/src/cache/stateCache.ts +1 -1
  31. package/src/index.ts +2 -0
  32. package/src/lightClient/proofs.ts +83 -0
  33. package/src/lightClient/types.ts +33 -0
  34. package/src/stateView/beaconStateView.ts +746 -0
  35. package/src/stateView/index.ts +2 -0
  36. package/src/stateView/interface.ts +196 -0
  37. package/src/util/weakSubjectivity.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":""}
@@ -24,7 +24,7 @@ export function getLatestWeakSubjectivityCheckpointEpoch(config, state) {
24
24
  */
25
25
  export function computeWeakSubjectivityPeriodCachedState(config, state) {
26
26
  const activeValidatorCount = state.epochCtx.currentShuffling.activeIndices.length;
27
- const fork = state.config.getForkName(state.slot);
27
+ const fork = config.getForkName(state.slot);
28
28
  return isForkPostElectra(fork)
29
29
  ? computeWeakSubjectivityPeriodFromConstituentsElectra(state.epochCtx.totalActiveBalanceIncrements, getBalanceChurnLimitFromCache(state.epochCtx), config.MIN_VALIDATOR_WITHDRAWABILITY_DELAY)
30
30
  : computeWeakSubjectivityPeriodFromConstituentsPhase0(activeValidatorCount, state.epochCtx.totalActiveBalanceIncrements, getChurnLimit(config, activeValidatorCount), config.MIN_VALIDATOR_WITHDRAWABILITY_DELAY);
@@ -1 +1 @@
1
- {"version":3,"file":"weakSubjectivity.js","sourceRoot":"","sources":["../../src/util/weakSubjectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weakSubjectivity.js","sourceRoot":"","sources":["../../src/util/weakSubjectivity.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.41.0-dev.a35cbde8b3",
14
+ "version": "1.41.0-dev.aeb5a213ee",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -62,14 +62,14 @@
62
62
  "@chainsafe/pubkey-index-map": "^3.0.0",
63
63
  "@chainsafe/ssz": "^1.2.2",
64
64
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
65
- "@lodestar/config": "^1.41.0-dev.a35cbde8b3",
66
- "@lodestar/params": "^1.41.0-dev.a35cbde8b3",
67
- "@lodestar/types": "^1.41.0-dev.a35cbde8b3",
68
- "@lodestar/utils": "^1.41.0-dev.a35cbde8b3",
65
+ "@lodestar/config": "^1.41.0-dev.aeb5a213ee",
66
+ "@lodestar/params": "^1.41.0-dev.aeb5a213ee",
67
+ "@lodestar/types": "^1.41.0-dev.aeb5a213ee",
68
+ "@lodestar/utils": "^1.41.0-dev.aeb5a213ee",
69
69
  "@vekexasia/bigint-buffer2": "^1.1.0"
70
70
  },
71
71
  "devDependencies": {
72
- "@lodestar/api": "^1.41.0-dev.a35cbde8b3"
72
+ "@lodestar/api": "^1.41.0-dev.aeb5a213ee"
73
73
  },
74
74
  "keywords": [
75
75
  "ethereum",
@@ -77,5 +77,5 @@
77
77
  "beacon",
78
78
  "blockchain"
79
79
  ],
80
- "gitHead": "090cdf258f4c067ebe6b5f0bdba221c2c23b9962"
80
+ "gitHead": "43590e813190f5db12afb15c9ee4d878989d837e"
81
81
  }
@@ -168,7 +168,7 @@ export function createCachedBeaconState<T extends BeaconStateAllForks>(
168
168
  * Check loadState() api for more details
169
169
  * // TODO: rename to loadUnfinalizedCachedBeaconState() due to ELECTRA
170
170
  */
171
- export function loadCachedBeaconState<T extends BeaconStateAllForks & BeaconStateCache>(
171
+ export function loadCachedBeaconState<T extends CachedBeaconStateAllForks>(
172
172
  cachedSeedState: T,
173
173
  stateBytes: Uint8Array,
174
174
  opts?: EpochCacheOpts,
package/src/index.ts CHANGED
@@ -35,12 +35,14 @@ export {
35
35
  isStateValidatorsNodesPopulated,
36
36
  loadCachedBeaconState,
37
37
  } from "./cache/stateCache.js";
38
+ export {type SyncCommitteeCache} from "./cache/syncCommitteeCache.js";
38
39
  export * from "./constants/index.js";
39
40
  export type {EpochTransitionStep} from "./epoch/index.js";
40
41
  export {type BeaconStateTransitionMetrics, getMetrics} from "./metrics.js";
41
42
  export * from "./rewards/index.js";
42
43
  export * from "./signatureSets/index.js";
43
44
  export * from "./stateTransition.js";
45
+ export * from "./stateView/index.js";
44
46
  export type {
45
47
  BeaconStateAllForks,
46
48
  BeaconStateAltair,
@@ -0,0 +1,83 @@
1
+ import {Tree} from "@chainsafe/persistent-merkle-tree";
2
+ import {
3
+ BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX,
4
+ FINALIZED_ROOT_GINDEX,
5
+ FINALIZED_ROOT_GINDEX_ELECTRA,
6
+ ForkName,
7
+ ForkPostBellatrix,
8
+ isForkPostElectra,
9
+ } from "@lodestar/params";
10
+ import {BeaconBlockBody, SSZTypesFor, ssz} from "@lodestar/types";
11
+ import {BeaconStateAllForks, CachedBeaconStateAllForks} from "../types.js";
12
+ import {SyncCommitteeWitness} from "./types.js";
13
+
14
+ export function getSyncCommitteesWitness(fork: ForkName, state: BeaconStateAllForks): SyncCommitteeWitness {
15
+ const n1 = state.node;
16
+ let witness: Uint8Array[];
17
+ let currentSyncCommitteeRoot: Uint8Array;
18
+ let nextSyncCommitteeRoot: Uint8Array;
19
+
20
+ if (isForkPostElectra(fork)) {
21
+ const n2 = n1.left;
22
+ const n5 = n2.right;
23
+ const n10 = n5.left;
24
+ const n21 = n10.right;
25
+ const n43 = n21.right;
26
+
27
+ currentSyncCommitteeRoot = n43.left.root; // n86
28
+ nextSyncCommitteeRoot = n43.right.root; // n87
29
+
30
+ // Witness branch is sorted by descending gindex
31
+ witness = [
32
+ n21.left.root, // 42
33
+ n10.left.root, // 20
34
+ n5.right.root, // 11
35
+ n2.left.root, // 4
36
+ n1.right.root, // 3
37
+ ];
38
+ } else {
39
+ const n3 = n1.right; // [1]0110
40
+ const n6 = n3.left; // 1[0]110
41
+ const n13 = n6.right; // 10[1]10
42
+ const n27 = n13.right; // 101[1]0
43
+ currentSyncCommitteeRoot = n27.left.root; // n54 1011[0]
44
+ nextSyncCommitteeRoot = n27.right.root; // n55 1011[1]
45
+
46
+ // Witness branch is sorted by descending gindex
47
+ witness = [
48
+ n13.left.root, // 26
49
+ n6.left.root, // 12
50
+ n3.right.root, // 7
51
+ n1.left.root, // 2
52
+ ];
53
+ }
54
+
55
+ return {
56
+ witness,
57
+ currentSyncCommitteeRoot,
58
+ nextSyncCommitteeRoot,
59
+ };
60
+ }
61
+
62
+ export function getNextSyncCommitteeBranch(syncCommitteesWitness: SyncCommitteeWitness): Uint8Array[] {
63
+ // Witness branch is sorted by descending gindex
64
+ return [syncCommitteesWitness.currentSyncCommitteeRoot, ...syncCommitteesWitness.witness];
65
+ }
66
+
67
+ export function getCurrentSyncCommitteeBranch(syncCommitteesWitness: SyncCommitteeWitness): Uint8Array[] {
68
+ // Witness branch is sorted by descending gindex
69
+ return [syncCommitteesWitness.nextSyncCommitteeRoot, ...syncCommitteesWitness.witness];
70
+ }
71
+
72
+ export function getFinalizedRootProof(state: CachedBeaconStateAllForks): Uint8Array[] {
73
+ const finalizedRootGindex = state.epochCtx.isPostElectra() ? FINALIZED_ROOT_GINDEX_ELECTRA : FINALIZED_ROOT_GINDEX;
74
+ return new Tree(state.node).getSingleProof(BigInt(finalizedRootGindex));
75
+ }
76
+
77
+ export function getBlockBodyExecutionHeaderProof(
78
+ fork: ForkPostBellatrix,
79
+ body: BeaconBlockBody<ForkPostBellatrix>
80
+ ): Uint8Array[] {
81
+ const bodyView = (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkPostBellatrix, "BeaconBlockBody">).toView(body);
82
+ return new Tree(bodyView.node).getSingleProof(BigInt(BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX));
83
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * We aren't creating the sync committee proofs separately because our ssz library automatically adds leaves to composite types,
3
+ * so they're already included in the state proof, currently with no way to specify otherwise
4
+ *
5
+ * remove two offsets so the # of offsets in the state proof will be the # expected
6
+ * This is a hack, but properly setting the offsets in the state proof would require either removing witnesses needed for the committees
7
+ * or setting the roots of the committees in the state proof
8
+ * this will always be 1, syncProofLeavesLength
9
+ *
10
+ *
11
+ * With empty state (minimal)
12
+ * - `genesisTime = 0xffffffff`
13
+ * - `genesisValidatorsRoot = Buffer.alloc(32, 1)`
14
+ *
15
+ * Proof:
16
+ * ```
17
+ * offsets: [ 5, 4, 3, 2, 1 ]
18
+ * leaves: [
19
+ * '0xffffffff00000000000000000000000000000000000000000000000000000000',
20
+ * '0x0101010101010101010101010101010101010101010101010101010101010101',
21
+ * '0xb11b8bcf59425d6c99019cca1d2c2e47b51a2f74917a67ad132274f43e13ec43',
22
+ * '0x74bd1f2437cdf74b0904ee525d8da070a3fa27570942bf42cbab3dc5939600f0',
23
+ * '0x7f06739e5a42360c56e519a511675901c95402ea9877edc0d9a87471b1374a6a',
24
+ * '0x9f534204ba3c0b69fcb42a11987bfcbc5aea0463e5b0614312ded4b62cf3a380'
25
+ * ]
26
+ * ```
27
+ */
28
+ export type SyncCommitteeWitness = {
29
+ /** Vector[Bytes32, 4] or Vector[Bytes32, 5] depending on the fork */
30
+ witness: Uint8Array[];
31
+ currentSyncCommitteeRoot: Uint8Array;
32
+ nextSyncCommitteeRoot: Uint8Array;
33
+ };