@lodestar/state-transition 1.42.0-dev.5007d8c6d6 → 1.42.0-dev.57ea00d5ae
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/block/processAttestationsAltair.d.ts +2 -1
- package/lib/block/processAttestationsAltair.d.ts.map +1 -1
- package/lib/block/processAttestationsAltair.js +5 -3
- package/lib/block/processAttestationsAltair.js.map +1 -1
- package/lib/signatureSets/index.d.ts +2 -2
- package/lib/signatureSets/index.d.ts.map +1 -1
- package/lib/signatureSets/index.js +1 -2
- package/lib/signatureSets/index.js.map +1 -1
- package/lib/slot/upgradeStateToAltair.d.ts.map +1 -1
- package/lib/slot/upgradeStateToAltair.js +2 -1
- package/lib/slot/upgradeStateToAltair.js.map +1 -1
- package/lib/stateView/beaconStateView.d.ts +6 -9
- package/lib/stateView/beaconStateView.d.ts.map +1 -1
- package/lib/stateView/beaconStateView.js +8 -32
- package/lib/stateView/beaconStateView.js.map +1 -1
- package/lib/stateView/index.d.ts +1 -0
- package/lib/stateView/index.d.ts.map +1 -1
- package/lib/stateView/index.js +1 -0
- package/lib/stateView/index.js.map +1 -1
- package/lib/stateView/interface.d.ts +12 -8
- package/lib/stateView/interface.d.ts.map +1 -1
- package/lib/stateView/stateViewFactory.d.ts +40 -0
- package/lib/stateView/stateViewFactory.d.ts.map +1 -0
- package/lib/stateView/stateViewFactory.js +46 -0
- package/lib/stateView/stateViewFactory.js.map +1 -0
- package/lib/testUtils/util.d.ts +13 -1
- package/lib/testUtils/util.d.ts.map +1 -1
- package/lib/testUtils/util.js +127 -22
- package/lib/testUtils/util.js.map +1 -1
- package/lib/util/rootCache.d.ts +2 -2
- package/lib/util/rootCache.d.ts.map +1 -1
- package/lib/util/rootCache.js +2 -3
- package/lib/util/rootCache.js.map +1 -1
- package/lib/util/shuffling.d.ts +2 -1
- package/lib/util/shuffling.d.ts.map +1 -1
- package/lib/util/shuffling.js +2 -2
- package/lib/util/shuffling.js.map +1 -1
- package/package.json +7 -7
- package/src/block/processAttestationsAltair.ts +7 -4
- package/src/signatureSets/index.ts +3 -4
- package/src/slot/upgradeStateToAltair.ts +2 -1
- package/src/stateView/beaconStateView.ts +16 -48
- package/src/stateView/index.ts +1 -0
- package/src/stateView/interface.ts +10 -5
- package/src/stateView/stateViewFactory.ts +78 -0
- package/src/testUtils/util.ts +144 -25
- package/src/util/rootCache.ts +4 -5
- package/src/util/shuffling.ts +5 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateViewFactory.d.ts","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAoB,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAIhD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAOrF;AAeD,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,gBAAgB,CASjH"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createPubkeyCache } from "../cache/pubkeyCache.js";
|
|
2
|
+
import { createCachedBeaconState } from "../cache/stateCache.js";
|
|
3
|
+
import { getStateTypeFromBytes } from "../util/sszBytes.js";
|
|
4
|
+
import { BeaconStateView } from "./beaconStateView.js";
|
|
5
|
+
/**
|
|
6
|
+
* Create a BeaconStateView from a pre-deserialized state. Used at node startup.
|
|
7
|
+
*
|
|
8
|
+
* The caller is responsible for creating and populating `pubkeyCache` (it is also
|
|
9
|
+
* passed separately to BeaconNode.init, so it must live outside this factory).
|
|
10
|
+
*
|
|
11
|
+
* Set `useNative: true` to use the native (Zig) implementation once available.
|
|
12
|
+
*/
|
|
13
|
+
export function createBeaconStateView(opts) {
|
|
14
|
+
if (opts.useNative) {
|
|
15
|
+
throw new Error("Native (Zig) BeaconStateView not yet implemented");
|
|
16
|
+
}
|
|
17
|
+
const { anchorState, config, pubkeyCache } = opts;
|
|
18
|
+
const cachedState = createCachedBeaconState(anchorState, { config, pubkeyCache }, { skipSyncPubkeys: true });
|
|
19
|
+
return new BeaconStateView(cachedState);
|
|
20
|
+
}
|
|
21
|
+
// ---- createBeaconStateViewForHistoricalRegen (regen path) ----
|
|
22
|
+
// Reused across all historical state regen calls in the worker thread
|
|
23
|
+
const pubkeyCacheRegen = createPubkeyCache();
|
|
24
|
+
function syncPubkeyCache(state, pubkeyCache) {
|
|
25
|
+
const newCount = state.validators.length;
|
|
26
|
+
for (let i = pubkeyCache.size; i < newCount; i++) {
|
|
27
|
+
const pubkey = state.validators.getReadonly(i).pubkey;
|
|
28
|
+
pubkeyCache.set(i, pubkey);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a BeaconStateView from raw SSZ bytes. Used in the historical state regen worker thread.
|
|
33
|
+
*
|
|
34
|
+
* Set `useNative: true` to use the native (Zig) implementation once available.
|
|
35
|
+
*/
|
|
36
|
+
export function createBeaconStateViewForHistoricalRegen(opts) {
|
|
37
|
+
if (opts.useNative) {
|
|
38
|
+
throw new Error("Native (Zig) BeaconStateView not yet implemented");
|
|
39
|
+
}
|
|
40
|
+
const { config, stateBytes } = opts;
|
|
41
|
+
const state = getStateTypeFromBytes(config, stateBytes).deserializeToViewDU(stateBytes);
|
|
42
|
+
syncPubkeyCache(state, pubkeyCacheRegen);
|
|
43
|
+
const cachedState = createCachedBeaconState(state, { config, pubkeyCache: pubkeyCacheRegen }, { skipSyncPubkeys: true });
|
|
44
|
+
return new BeaconStateView(cachedState);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=stateViewFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateViewFactory.js","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAiBrD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA6B,EAAoB;IACrF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,WAAW,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACzG,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC;AAED,iEAAiE;AAEjE,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;AAE7C,SAAS,eAAe,CAAC,KAA0B,EAAE,WAAwB,EAAQ;IACnF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtD,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;AAAA,CACF;AAaD;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CAAC,IAAuC,EAAoB;IACjH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACxF,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACrH,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC"}
|
package/lib/testUtils/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PublicKey, SecretKey } from "@chainsafe/blst";
|
|
2
2
|
import { Slot, phase0 } from "@lodestar/types";
|
|
3
|
-
import { BeaconStateAltair, CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStatePhase0 } from "../types.js";
|
|
3
|
+
import { BeaconStateAltair, BeaconStateElectra, CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStateElectra, CachedBeaconStatePhase0 } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Number of validators in prater is 210000 as of May 2021
|
|
6
6
|
*/
|
|
@@ -35,10 +35,22 @@ export declare function generatePerfTestCachedStateAltair(opts?: {
|
|
|
35
35
|
goBackOneSlot: boolean;
|
|
36
36
|
vc?: number;
|
|
37
37
|
}): CachedBeaconStateAltair;
|
|
38
|
+
/**
|
|
39
|
+
* Warning: This function has side effects on the cached state
|
|
40
|
+
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generatePerfTestCachedStateElectra(opts?: {
|
|
43
|
+
goBackOneSlot: boolean;
|
|
44
|
+
vc?: number;
|
|
45
|
+
}): CachedBeaconStateElectra;
|
|
38
46
|
/**
|
|
39
47
|
* This is generated from Medalla state 756416
|
|
40
48
|
*/
|
|
41
49
|
export declare function generatePerformanceStateAltair(pubkeysArg?: Uint8Array[]): BeaconStateAltair;
|
|
50
|
+
/**
|
|
51
|
+
* This is generated from the same performance state as Altair, upgraded to Electra fields.
|
|
52
|
+
*/
|
|
53
|
+
export declare function generatePerformanceStateElectra(pubkeysArg?: Uint8Array[]): BeaconStateElectra;
|
|
42
54
|
/**
|
|
43
55
|
* This is generated from Medalla block 756417
|
|
44
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAcrD,OAAO,EAAc,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAW/D,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAcrD,OAAO,EAAc,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAW/D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAElB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAgBrB;;GAEG;AACH,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sBAAgC,CAAC;AAKzD,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,wBAAgB,UAAU,CAAC,EAAE,SAAgB;;;;EAK5C;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAEvE;AAED,2FAA2F;AAC3F,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAQ7E;AAaD,wBAAgB,iCAAiC,CAAC,IAAI,CAAC,EAAE;IAAC,aAAa,EAAE,OAAO,CAAA;CAAC,GAAG,uBAAuB,CA2F1G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CASpF;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,CAAC,EAAE;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,uBAAuB,CAiC1B;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,CAAC,EAAE;IACxD,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,wBAAwB,CAqC3B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CA0C3F;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAiD7F;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,iBAAiB,CAgBzE;AA2ED,wBAAgB,2CAA2C,CAAC,EAC1D,EAAE,EACF,IAAI,EACL,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,GAAG,yBAAyB,CAoD5B"}
|
package/lib/testUtils/util.js
CHANGED
|
@@ -16,6 +16,9 @@ let phase0SignedBlock = null;
|
|
|
16
16
|
let altairState = null;
|
|
17
17
|
let altairCachedState23637 = null;
|
|
18
18
|
let altairCachedState23638 = null;
|
|
19
|
+
let electraState = null;
|
|
20
|
+
let electraCachedState23637 = null;
|
|
21
|
+
let electraCachedState23638 = null;
|
|
19
22
|
/**
|
|
20
23
|
* Number of validators in prater is 210000 as of May 2021
|
|
21
24
|
*/
|
|
@@ -52,10 +55,10 @@ export function getSecretKeyFromIndexCached(validatorIndex) {
|
|
|
52
55
|
}
|
|
53
56
|
return sk;
|
|
54
57
|
}
|
|
55
|
-
function getPubkeyCaches({ pubkeysMod }) {
|
|
58
|
+
function getPubkeyCaches({ pubkeysMod }, vc = numValidators) {
|
|
56
59
|
// Manually sync pubkeys to prevent doing BLS opts 110_000 times
|
|
57
60
|
const pubkeyCache = createPubkeyCache();
|
|
58
|
-
for (let i = 0; i <
|
|
61
|
+
for (let i = 0; i < vc; i++) {
|
|
59
62
|
const pubkey = pubkeysMod[i % keypairsMod];
|
|
60
63
|
pubkeyCache.set(i, pubkey);
|
|
61
64
|
}
|
|
@@ -134,7 +137,8 @@ export function generatePerfTestCachedStatePhase0(opts) {
|
|
|
134
137
|
phase0CachedState23638.slot += 1;
|
|
135
138
|
}
|
|
136
139
|
const resultingState = opts?.goBackOneSlot ? phase0CachedState23637 : phase0CachedState23638;
|
|
137
|
-
|
|
140
|
+
// Use dontTransferCache to preserve the global cache for subsequent callers
|
|
141
|
+
return resultingState.clone(true);
|
|
138
142
|
}
|
|
139
143
|
export function cachedStateAltairPopulateCaches(state) {
|
|
140
144
|
// Populate caches
|
|
@@ -151,31 +155,85 @@ export function cachedStateAltairPopulateCaches(state) {
|
|
|
151
155
|
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
152
156
|
*/
|
|
153
157
|
export function generatePerfTestCachedStateAltair(opts) {
|
|
154
|
-
const
|
|
155
|
-
const {
|
|
158
|
+
const vc = opts?.vc ?? numValidators;
|
|
159
|
+
const { pubkeys, pubkeysMod, pubkeysModObj } = getPubkeys(vc);
|
|
160
|
+
const { pubkeyCache } = getPubkeyCaches({ pubkeys, pubkeysMod, pubkeysModObj }, vc);
|
|
156
161
|
const altairConfig = createChainForkConfig({ ALTAIR_FORK_EPOCH: 0 });
|
|
157
162
|
const origState = generatePerformanceStateAltair(pubkeys);
|
|
158
|
-
|
|
159
|
-
|
|
163
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
164
|
+
const isDefaultVc = vc === numValidators;
|
|
165
|
+
let cachedState23637 = isDefaultVc ? altairCachedState23637 : null;
|
|
166
|
+
if (!cachedState23637) {
|
|
167
|
+
const state = origState.clone(true);
|
|
160
168
|
state.slot -= 1;
|
|
161
|
-
|
|
169
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
162
170
|
config: createBeaconConfig(altairConfig, state.genesisValidatorsRoot),
|
|
163
171
|
pubkeyCache,
|
|
164
172
|
});
|
|
173
|
+
if (isDefaultVc)
|
|
174
|
+
altairCachedState23637 = cachedState23637;
|
|
175
|
+
}
|
|
176
|
+
let cachedState23638 = isDefaultVc ? altairCachedState23638 : null;
|
|
177
|
+
if (!cachedState23638) {
|
|
178
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1);
|
|
179
|
+
cachedState23638.slot += 1;
|
|
180
|
+
if (isDefaultVc)
|
|
181
|
+
altairCachedState23638 = cachedState23638;
|
|
182
|
+
}
|
|
183
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
184
|
+
// Use dontTransferCache to preserve the global cache for subsequent callers
|
|
185
|
+
return resultingState.clone(true);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Warning: This function has side effects on the cached state
|
|
189
|
+
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
190
|
+
*/
|
|
191
|
+
export function generatePerfTestCachedStateElectra(opts) {
|
|
192
|
+
const vc = opts?.vc ?? numValidators;
|
|
193
|
+
const { pubkeys, pubkeysMod, pubkeysModObj } = getPubkeys(vc);
|
|
194
|
+
const { pubkeyCache } = getPubkeyCaches({ pubkeys, pubkeysMod, pubkeysModObj }, vc);
|
|
195
|
+
const electraConfig = createChainForkConfig({
|
|
196
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
197
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
198
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
199
|
+
DENEB_FORK_EPOCH: 0,
|
|
200
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
201
|
+
});
|
|
202
|
+
const origState = generatePerformanceStateElectra(pubkeys);
|
|
203
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
204
|
+
const isDefaultVc = vc === numValidators;
|
|
205
|
+
let cachedState23637 = isDefaultVc ? electraCachedState23637 : null;
|
|
206
|
+
if (!cachedState23637) {
|
|
207
|
+
const state = origState.clone(true);
|
|
208
|
+
state.slot -= 1;
|
|
209
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
210
|
+
config: createBeaconConfig(electraConfig, state.genesisValidatorsRoot),
|
|
211
|
+
pubkeyCache,
|
|
212
|
+
});
|
|
213
|
+
if (isDefaultVc)
|
|
214
|
+
electraCachedState23637 = cachedState23637;
|
|
165
215
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
216
|
+
let cachedState23638 = isDefaultVc ? electraCachedState23638 : null;
|
|
217
|
+
if (!cachedState23638) {
|
|
218
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1);
|
|
219
|
+
cachedState23638.slot += 1;
|
|
220
|
+
if (isDefaultVc)
|
|
221
|
+
electraCachedState23638 = cachedState23638;
|
|
169
222
|
}
|
|
170
|
-
const resultingState = opts?.goBackOneSlot ?
|
|
171
|
-
|
|
223
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
224
|
+
// Use dontTransferCache to preserve the global cache for subsequent callers
|
|
225
|
+
return resultingState.clone(true);
|
|
172
226
|
}
|
|
173
227
|
/**
|
|
174
228
|
* This is generated from Medalla state 756416
|
|
175
229
|
*/
|
|
176
230
|
export function generatePerformanceStateAltair(pubkeysArg) {
|
|
177
|
-
|
|
178
|
-
|
|
231
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
232
|
+
const vc = pubkeys.length;
|
|
233
|
+
const isDefaultVc = vc === numValidators;
|
|
234
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
235
|
+
let cached = isDefaultVc ? altairState : null;
|
|
236
|
+
if (!cached) {
|
|
179
237
|
const statePhase0 = buildPerformanceStatePhase0(pubkeys);
|
|
180
238
|
const state = statePhase0;
|
|
181
239
|
state.previousEpochParticipation = newFilledArray(pubkeys.length, 0b111);
|
|
@@ -185,19 +243,66 @@ export function generatePerformanceStateAltair(pubkeysArg) {
|
|
|
185
243
|
state.currentSyncCommittee = ssz.altair.SyncCommittee.defaultValue();
|
|
186
244
|
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
187
245
|
// Now the state is fully populated to convert to ViewDU
|
|
188
|
-
|
|
246
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
189
247
|
// Now set correct syncCommittees
|
|
190
248
|
const epoch = computeEpochAtSlot(state.slot);
|
|
191
|
-
const activeValidatorIndices = getActiveValidatorIndices(
|
|
192
|
-
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(
|
|
193
|
-
const { syncCommittee } = getNextSyncCommittee(ForkSeq.altair,
|
|
249
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
250
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
251
|
+
const { syncCommittee } = getNextSyncCommittee(ForkSeq.altair, cached, activeValidatorIndices, effectiveBalanceIncrements);
|
|
194
252
|
state.currentSyncCommittee = syncCommittee;
|
|
195
253
|
state.nextSyncCommittee = syncCommittee;
|
|
196
|
-
|
|
254
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
197
255
|
// cache roots
|
|
198
|
-
|
|
256
|
+
cached.hashTreeRoot();
|
|
257
|
+
if (isDefaultVc)
|
|
258
|
+
altairState = cached;
|
|
259
|
+
}
|
|
260
|
+
// Use dontTransferCache to preserve the global cache for subsequent callers
|
|
261
|
+
return cached.clone(true);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* This is generated from the same performance state as Altair, upgraded to Electra fields.
|
|
265
|
+
*/
|
|
266
|
+
export function generatePerformanceStateElectra(pubkeysArg) {
|
|
267
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
268
|
+
const vc = pubkeys.length;
|
|
269
|
+
const isDefaultVc = vc === numValidators;
|
|
270
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
271
|
+
let cached = isDefaultVc ? electraState : null;
|
|
272
|
+
if (!cached) {
|
|
273
|
+
const electraConfig = createChainForkConfig({
|
|
274
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
275
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
276
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
277
|
+
DENEB_FORK_EPOCH: 0,
|
|
278
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
279
|
+
});
|
|
280
|
+
const state = ssz.electra.BeaconState.defaultValue();
|
|
281
|
+
Object.assign(state, buildPerformanceStatePhase0(pubkeys));
|
|
282
|
+
state.fork.previousVersion = electraConfig.DENEB_FORK_VERSION;
|
|
283
|
+
state.fork.currentVersion = electraConfig.ELECTRA_FORK_VERSION;
|
|
284
|
+
state.fork.epoch = electraConfig.ELECTRA_FORK_EPOCH;
|
|
285
|
+
state.previousEpochParticipation = newFilledArray(pubkeys.length, 0b111);
|
|
286
|
+
state.currentEpochParticipation = state.previousEpochParticipation;
|
|
287
|
+
state.inactivityScores = Array.from({ length: pubkeys.length }, (_, i) => i % 2);
|
|
288
|
+
state.currentSyncCommittee = ssz.altair.SyncCommittee.defaultValue();
|
|
289
|
+
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
290
|
+
state.latestExecutionPayloadHeader = ssz.electra.ExecutionPayloadHeader.defaultValue();
|
|
291
|
+
state.depositRequestsStartIndex = 2023n;
|
|
292
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
293
|
+
const epoch = computeEpochAtSlot(state.slot);
|
|
294
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
295
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
296
|
+
const { syncCommittee } = getNextSyncCommittee(ForkSeq.electra, cached, activeValidatorIndices, effectiveBalanceIncrements);
|
|
297
|
+
state.currentSyncCommittee = syncCommittee;
|
|
298
|
+
state.nextSyncCommittee = syncCommittee;
|
|
299
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
300
|
+
cached.hashTreeRoot();
|
|
301
|
+
if (isDefaultVc)
|
|
302
|
+
electraState = cached;
|
|
199
303
|
}
|
|
200
|
-
|
|
304
|
+
// Use dontTransferCache to preserve the global cache for subsequent callers
|
|
305
|
+
return cached.clone(true);
|
|
201
306
|
}
|
|
202
307
|
/**
|
|
203
308
|
* This is generated from Medalla block 756417
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAY,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAE5B,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA4B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAC,6BAA6B,EAAC,MAAM,wCAAwC,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAElD,IAAI,WAAW,GAA6B,IAAI,CAAC;AACjD,IAAI,sBAAsB,GAAmC,IAAI,CAAC;AAClE,IAAI,sBAAsB,GAAmC,IAAI,CAAC;AAClE,IAAI,iBAAiB,GAAoC,IAAI,CAAC;AAC9D,IAAI,WAAW,GAA6B,IAAI,CAAC;AACjD,IAAI,sBAAsB,GAAmC,IAAI,CAAC;AAClE,IAAI,sBAAsB,GAAmC,IAAI,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,aAAa,aAAa,CAAC;AAEzD,gCAAgC;AAChC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAqB,CAAC;AACzD,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,EAAE,GAAG,aAAa,EAAE;IAC7C,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAChF,OAAO,EAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAC,CAAC;AAAA,CAC7C;AAED,2FAA2F;AAC3F,MAAM,UAAU,qBAAqB,CAAC,cAAsB,EAAa;IACvE,OAAO,gBAAgB,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC;AAAA,CACvD;AAED,2FAA2F;AAC3F,MAAM,UAAU,2BAA2B,CAAC,cAAsB,EAAa;IAC7E,MAAM,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAC;IAC9C,IAAI,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AAAA,CACX;AAED,SAAS,eAAe,CAAC,EAAC,UAAU,EAAgC,EAAE;IACpE,gEAAgE;IAChE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;QAC3C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAC,WAAW,EAAC,CAAC;AAAA,CACtB;AAED,MAAM,UAAU,iCAAiC,CAAC,IAA+B,EAA2B;IAC1G,gCAAgC;IAChC,MAAM,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAC,GAAG,UAAU,EAAE,CAAC;IAC1D,MAAM,EAAC,WAAW,EAAC,GAAG,eAAe,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,2BAA2B,EAAE,CAAC;QAE5C,uBAAuB;QACvB,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErD,cAAc;QACd,WAAW,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAChB,sBAAsB,GAAG,uBAAuB,CAAC,KAAK,EAAE;YACtD,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC;YAC/D,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC;QAEvC,8BAA8B;QAC9B,MAAM,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,CAAC;QAC/D,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC;YACxC,MAAM,IAAI,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;YAC3D,MAAM,KAAK,GAAG,CAAC,GAAG,iBAAiB,CAAC;YACpC,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,sBAAsB,CAAC,yBAAyB,CAAC,IAAI,CACnD,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACrC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,EAAE;oBACJ,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,GAAG,yBAAyB,CAAC;oBAC/F,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,KAAK,CAAC,2BAA2B;oBACzC,MAAM,EAAE,KAAK,CAAC,0BAA0B;iBACzC;gBACD,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;aACjB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,kBAAkB,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC;YACxC,MAAM,IAAI,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;YAC1D,MAAM,KAAK,GAAG,CAAC,GAAG,iBAAiB,CAAC;YACpC,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;YAE3D,sBAAsB,CAAC,wBAAwB,CAAC,IAAI,CAClD,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACrC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3F,IAAI,EAAE;oBACJ,eAAe,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,GAAG,yBAAyB,CAAC;oBAC/F,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,KAAK,CAAC,0BAA0B;oBACxC,MAAM,EAAE;wBACN,KAAK,EAAE,YAAY;wBACnB,IAAI,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC,GAAG,yBAAyB,CAAC;qBAC1G;iBACF;gBACD,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;aACjB,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,YAAY,CACnC,sBAAsB,EACtB,sBAAsB,CAAC,IAAI,GAAG,CAAC,CACL,CAAC;QAC7B,sBAAsB,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAE7F,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,+BAA+B,CAAC,KAA8B,EAAQ;IACpF,kBAAkB;IAClB,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAClC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IACrC,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC;IAC1C,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC;IACzC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAAA,CACjC;AAED;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAAC,IAGjD,EAA2B;IAC1B,MAAM,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,EAAC,WAAW,EAAC,GAAG,eAAe,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,qBAAqB,CAAC,EAAC,iBAAiB,EAAE,CAAC,EAAC,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAChB,sBAAsB,GAAG,uBAAuB,CAAC,KAAK,EAAE;YACtD,MAAM,EAAE,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,qBAAqB,CAAC;YACrE,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,YAAY,CACnC,sBAAsB,EACtB,sBAAsB,CAAC,IAAI,GAAG,CAAC,CACL,CAAC;QAC7B,sBAAsB,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAE7F,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC;AAAA,CAC/B;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAAyB,EAAqB;IAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC;QACnD,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,WAA0D,CAAC;QAEzE,KAAK,CAAC,0BAA0B,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzE,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,0BAA0B,CAAC;QACnE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/E,6BAA6B;QAC7B,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACrE,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC;QAErD,wDAAwD;QACxD,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErD,iCAAiC;QACjC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE7E,MAAM,0BAA0B,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAC9E,MAAM,EAAC,aAAa,EAAC,GAAG,oBAAoB,CAC1C,OAAO,CAAC,MAAM,EACd,WAAW,EACX,sBAAsB,EACtB,0BAA0B,CAC3B,CAAC;QACF,KAAK,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAC3C,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC;QAExC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,cAAc;QACd,WAAW,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;AAAA,CAC5B;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,GAA6B;IACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,iCAAiC,EAAE,CAAC;QACxD,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvF,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACpG,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,oEAAoE,CAAC,CAAC;QAC9G,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAC7C,oMAAoM,CACrM,CAAC;QACF,mCAAmC;QACnC,iBAAiB,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC;AAAA,CAC1B;AAED,SAAS,2BAA2B,CAAC,UAAyB,EAAsB;IAClF,MAAM,IAAI,GAAG,KAAK,GAAG,eAAe,CAAC;IACrC,MAAM,OAAO,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC;IACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,OAAO;QACP,WAAW,EAAE,UAAU;QACvB,qBAAqB,EAAE,aAAa,CAAC,oEAAoE,CAAC;QAC1G,IAAI,EAAE,KAAK,GAAG,eAAe;QAC7B,IAAI,EAAE;YACJ,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC;YAC3C,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC;YAC5C,KAAK,EAAE,CAAC;SACT;QACD,UAAU;QACV,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI,GAAG,CAAC;YACd,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,aAAa,CAAC,oEAAoE,CAAC;YAC/F,SAAS,EAAE,aAAa,CAAC,oEAAoE,CAAC;YAC9F,QAAQ,EAAE,aAAa,CAAC,oEAAoE,CAAC;SAC9F;QACD,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,yBAAyB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1F,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,yBAAyB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1F,eAAe,EAAE,EAAE;QACnB,OAAO;QACP,QAAQ,EAAE;YACR,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,WAAW,EAAE,aAAa,CAAC,oEAAoE,CAAC;YAChG,SAAS,EAAE,aAAa,CAAC,oEAAoE,CAAC;SAC/F;QACD,iDAAiD;QACjD,aAAa,EAAE,cAAc,CAAC,6BAA6B,GAAG,eAAe,GAAG,CAAC,EAAE;YACjF,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;SAC/B,CAAC;QACF,gBAAgB,EAAE,OAAO,CAAC,MAAM;QAChC,WAAW;QACX,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClB,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,gBAAgB,EAAE,WAAW;YAC7B,OAAO,EAAE,KAAK;YACd,0BAA0B,EAAE,CAAC;YAC7B,eAAe,EAAE,CAAC;YAClB,SAAS,EAAE,QAAQ;YACnB,iBAAiB,EAAE,QAAQ;SAC5B,CAAC,CAAC;QACH,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC;QACjE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,4BAA4B,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9F,YAAY;QACZ,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE;QAC9C,yBAAyB,EAAE,EAAE;QAC7B,wBAAwB,EAAE,EAAE;QAC5B,WAAW;QACX,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACzC,2BAA2B,EAAE;YAC3B,KAAK,EAAE,YAAY,GAAG,CAAC;YACvB,IAAI,EAAE,aAAa,CAAC,oEAAoE,CAAC;SAC1F;QACD,0BAA0B,EAAE;YAC1B,KAAK,EAAE,YAAY,GAAG,CAAC;YACvB,IAAI,EAAE,aAAa,CAAC,oEAAoE,CAAC;SAC1F;QACD,mBAAmB,EAAE;YACnB,KAAK,EAAE,YAAY,GAAG,CAAC;YACvB,IAAI,EAAE,aAAa,CAAC,oEAAoE,CAAC;SAC1F;KACF,CAAC;AAAA,CACH;AAED,MAAM,UAAU,2CAA2C,CAAC,EAC1D,EAAE,EACF,IAAI,GAIL,EAA6B;IAC5B,gCAAgC;IAChC,MAAM,EAAC,OAAO,EAAE,UAAU,EAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE7C,gEAAgE;IAChE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;QAC3C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;IACrD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QACpD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,gBAAgB,EAAE,qBAAqB;QACvC,OAAO,EAAE,KAAK;QACd,0BAA0B,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,QAAQ;QACnB,iBAAiB,EAAE,QAAQ;KAC5B,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1C,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACrG,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CACjD,cAAc,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CACrE,CAAC;IAEF,wBAAwB;IACxB,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,mCAAmC;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,4CAA4C,KAAK,CAAC,UAAU,CAAC,MAAM,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,uBAAuB,CAC5B,KAAK,EACL;QACE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC;QAC/D,WAAW;KACZ,EACD,EAAC,eAAe,EAAE,IAAI,EAAC,CACxB,CAAC;AAAA,CACH"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"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"}
|
package/lib/util/rootCache.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Epoch, Root, Slot, phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
2
|
+
import { IBeaconStateView } from "../stateView/interface.js";
|
|
3
3
|
/**
|
|
4
4
|
* Cache to prevent accessing the state tree to fetch block roots repeteadly.
|
|
5
5
|
* In normal network conditions the same root is read multiple times, specially the target.
|
|
@@ -10,7 +10,7 @@ export declare class RootCache {
|
|
|
10
10
|
readonly previousJustifiedCheckpoint: phase0.Checkpoint;
|
|
11
11
|
private readonly blockRootEpochCache;
|
|
12
12
|
private readonly blockRootSlotCache;
|
|
13
|
-
constructor(state:
|
|
13
|
+
constructor(state: IBeaconStateView);
|
|
14
14
|
getBlockRoot(epoch: Epoch): Root;
|
|
15
15
|
getBlockRootAtSlot(slot: Slot): Root;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootCache.d.ts","sourceRoot":"","sources":["../../src/util/rootCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"rootCache.d.ts","sourceRoot":"","sources":["../../src/util/rootCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAE3D;;;GAGG;AACH,qBAAa,SAAS;IAMR,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC,UAAU,CAAC;IACvD,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0B;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAE5D,YAA6B,KAAK,EAAE,gBAAgB,EAGnD;IAED,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAO/B;IAED,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAOnC;CACF"}
|
package/lib/util/rootCache.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { getBlockRoot, getBlockRootAtSlot } from "./blockRoot.js";
|
|
2
1
|
/**
|
|
3
2
|
* Cache to prevent accessing the state tree to fetch block roots repeteadly.
|
|
4
3
|
* In normal network conditions the same root is read multiple times, specially the target.
|
|
@@ -17,7 +16,7 @@ export class RootCache {
|
|
|
17
16
|
getBlockRoot(epoch) {
|
|
18
17
|
let root = this.blockRootEpochCache.get(epoch);
|
|
19
18
|
if (!root) {
|
|
20
|
-
root =
|
|
19
|
+
root = this.state.getBlockRootAtEpoch(epoch);
|
|
21
20
|
this.blockRootEpochCache.set(epoch, root);
|
|
22
21
|
}
|
|
23
22
|
return root;
|
|
@@ -25,7 +24,7 @@ export class RootCache {
|
|
|
25
24
|
getBlockRootAtSlot(slot) {
|
|
26
25
|
let root = this.blockRootSlotCache.get(slot);
|
|
27
26
|
if (!root) {
|
|
28
|
-
root =
|
|
27
|
+
root = this.state.getBlockRootAtSlot(slot);
|
|
29
28
|
this.blockRootSlotCache.set(slot, root);
|
|
30
29
|
}
|
|
31
30
|
return root;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootCache.js","sourceRoot":"","sources":["../../src/util/rootCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rootCache.js","sourceRoot":"","sources":["../../src/util/rootCache.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,OAAO,SAAS;IAMS,KAAK;IALzB,0BAA0B,CAAoB;IAC9C,2BAA2B,CAAoB;IACvC,mBAAmB,GAAG,IAAI,GAAG,EAAe,CAAC;IAC7C,kBAAkB,GAAG,IAAI,GAAG,EAAc,CAAC;IAE5D,YAA6B,KAAuB,EAAE;qBAAzB,KAAK;QAChC,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,0BAA0B,CAAC;QACnE,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,2BAA2B,CAAC;IAAA,CACtE;IAED,YAAY,CAAC,KAAY,EAAQ;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IAAA,CACb;IAED,kBAAkB,CAAC,IAAU,EAAQ;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAAA,CACb;CACF"}
|
package/lib/util/shuffling.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ForkName, ForkSeq } from "@lodestar/params";
|
|
|
2
2
|
import { Attestation, CommitteeIndex, Epoch, IndexedAttestation, Root, Slot, ValidatorIndex } from "@lodestar/types";
|
|
3
3
|
import { LodestarError } from "@lodestar/utils";
|
|
4
4
|
import { CachedBeaconStateAllForks } from "../cache/stateCache.js";
|
|
5
|
+
import { IBeaconStateView } from "../stateView/interface.js";
|
|
5
6
|
import { EpochShuffling } from "./epochShuffling.js";
|
|
6
7
|
/**
|
|
7
8
|
* Returns the block root which decided the proposer shuffling for the current epoch. This root
|
|
@@ -10,7 +11,7 @@ import { EpochShuffling } from "./epochShuffling.js";
|
|
|
10
11
|
* Returns `null` on the one-off scenario where the genesis block decides its own shuffling.
|
|
11
12
|
* It should be set to the latest block applied to this `state` or the genesis block root.
|
|
12
13
|
*/
|
|
13
|
-
export declare function proposerShufflingDecisionRoot(fork: ForkName, state:
|
|
14
|
+
export declare function proposerShufflingDecisionRoot(fork: ForkName, state: IBeaconStateView): Root | null;
|
|
14
15
|
/**
|
|
15
16
|
* Returns the block root which decided the attester shuffling for the given `requestedEpoch`.
|
|
16
17
|
* This root can be used to key that attester shuffling.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffling.d.ts","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAkC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"shuffling.d.ts","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAkC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAMlG;AAaD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAMlH;AAsCD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,cAAc,EAAE,GAC1C,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAyBnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAWpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CA6BrH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEjH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,EAAE,GACxB,WAAW,EAAE,CAoBf;AAED,oBAAY,kBAAkB;IAC5B,4BAA4B,iDAAiD;CAC9E;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,kBAAkB,CAAC,4BAA4B,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAe,SAAQ,aAAa,CAAC,kBAAkB,CAAC;CAAG"}
|
package/lib/util/shuffling.js
CHANGED
|
@@ -14,7 +14,7 @@ export function proposerShufflingDecisionRoot(fork, state) {
|
|
|
14
14
|
if (state.slot === decisionSlot) {
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
|
-
return getBlockRootAtSlot(
|
|
17
|
+
return state.getBlockRootAtSlot(decisionSlot);
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Returns the slot at which the proposer shuffling was decided. The block root at this slot
|
|
@@ -22,7 +22,7 @@ export function proposerShufflingDecisionRoot(fork, state) {
|
|
|
22
22
|
*/
|
|
23
23
|
function proposerShufflingDecisionSlot(fork, state) {
|
|
24
24
|
// After fulu, the decision slot is in previous epoch due to deterministic proposer lookahead
|
|
25
|
-
const epoch = isForkPostFulu(fork) ? state.
|
|
25
|
+
const epoch = isForkPostFulu(fork) ? state.epoch - 1 : state.epoch;
|
|
26
26
|
const startSlot = computeStartSlotAtEpoch(epoch);
|
|
27
27
|
return Math.max(startSlot - 1, 0);
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shuffling.js","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAWpF,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"shuffling.js","sourceRoot":"","sources":["../../src/util/shuffling.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.42.0-dev.
|
|
14
|
+
"version": "1.42.0-dev.57ea00d5ae",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -67,14 +67,14 @@
|
|
|
67
67
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
68
68
|
"@chainsafe/ssz": "^1.2.2",
|
|
69
69
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
70
|
-
"@lodestar/config": "^1.42.0-dev.
|
|
71
|
-
"@lodestar/params": "^1.42.0-dev.
|
|
72
|
-
"@lodestar/types": "^1.42.0-dev.
|
|
73
|
-
"@lodestar/utils": "^1.42.0-dev.
|
|
70
|
+
"@lodestar/config": "^1.42.0-dev.57ea00d5ae",
|
|
71
|
+
"@lodestar/params": "^1.42.0-dev.57ea00d5ae",
|
|
72
|
+
"@lodestar/types": "^1.42.0-dev.57ea00d5ae",
|
|
73
|
+
"@lodestar/utils": "^1.42.0-dev.57ea00d5ae",
|
|
74
74
|
"@vekexasia/bigint-buffer2": "^1.1.1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@lodestar/api": "^1.42.0-dev.
|
|
77
|
+
"@lodestar/api": "^1.42.0-dev.57ea00d5ae"
|
|
78
78
|
},
|
|
79
79
|
"keywords": [
|
|
80
80
|
"ethereum",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"beacon",
|
|
83
83
|
"blockchain"
|
|
84
84
|
],
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "cfb841164ae774b8d66eadca55431b3671e2de70"
|
|
86
86
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {BitArray} from "@chainsafe/ssz";
|
|
1
2
|
import {
|
|
2
3
|
EFFECTIVE_BALANCE_INCREMENT,
|
|
3
4
|
ForkSeq,
|
|
@@ -17,6 +18,7 @@ import {Attestation, Epoch, phase0} from "@lodestar/types";
|
|
|
17
18
|
import {byteArrayEquals, intSqrt} from "@lodestar/utils";
|
|
18
19
|
import {BeaconStateTransitionMetrics} from "../metrics.js";
|
|
19
20
|
import {getAttestationWithIndicesSignatureSet} from "../signatureSets/indexedAttestation.js";
|
|
21
|
+
import {BeaconStateView} from "../stateView/beaconStateView.js";
|
|
20
22
|
import {CachedBeaconStateAltair, CachedBeaconStateGloas} from "../types.js";
|
|
21
23
|
import {isAttestationSameSlot, isAttestationSameSlotRootCache} from "../util/gloas.js";
|
|
22
24
|
import {increaseBalance, verifySignatureSet} from "../util/index.js";
|
|
@@ -41,7 +43,7 @@ export function processAttestationsAltair(
|
|
|
41
43
|
const {epochCtx} = state;
|
|
42
44
|
const {effectiveBalanceIncrements} = epochCtx;
|
|
43
45
|
const stateSlot = state.slot;
|
|
44
|
-
const rootCache = new RootCache(state);
|
|
46
|
+
const rootCache = new RootCache(new BeaconStateView(state));
|
|
45
47
|
const currentEpoch = epochCtx.epoch;
|
|
46
48
|
|
|
47
49
|
// Process all attestations first and then increase the balance of the proposer once
|
|
@@ -80,7 +82,7 @@ export function processAttestationsAltair(
|
|
|
80
82
|
stateSlot - data.slot,
|
|
81
83
|
epochCtx.epoch,
|
|
82
84
|
rootCache,
|
|
83
|
-
fork >= ForkSeq.gloas ? (state as CachedBeaconStateGloas).executionPayloadAvailability
|
|
85
|
+
fork >= ForkSeq.gloas ? (state as CachedBeaconStateGloas).executionPayloadAvailability : null
|
|
84
86
|
);
|
|
85
87
|
|
|
86
88
|
// For each participant, update their participation
|
|
@@ -177,7 +179,7 @@ export function getAttestationParticipationStatus(
|
|
|
177
179
|
inclusionDelay: number,
|
|
178
180
|
currentEpoch: Epoch,
|
|
179
181
|
rootCache: RootCache,
|
|
180
|
-
executionPayloadAvailability:
|
|
182
|
+
executionPayloadAvailability: BitArray | null
|
|
181
183
|
): number {
|
|
182
184
|
const justifiedCheckpoint =
|
|
183
185
|
data.target.epoch === currentEpoch ? rootCache.currentJustifiedCheckpoint : rootCache.previousJustifiedCheckpoint;
|
|
@@ -221,7 +223,8 @@ export function getAttestationParticipationStatus(
|
|
|
221
223
|
throw new Error(`data index must be 0 or 1 index=${data.index}`);
|
|
222
224
|
}
|
|
223
225
|
|
|
224
|
-
isMatchingPayload =
|
|
226
|
+
isMatchingPayload =
|
|
227
|
+
Boolean(data.index) === executionPayloadAvailability.get(data.slot % SLOTS_PER_HISTORICAL_ROOT);
|
|
225
228
|
}
|
|
226
229
|
|
|
227
230
|
isMatchingHead = isMatchingHead && isMatchingPayload;
|
|
@@ -3,8 +3,7 @@ import {ForkSeq} from "@lodestar/params";
|
|
|
3
3
|
import {IndexedAttestation, SignedBeaconBlock, altair, capella} from "@lodestar/types";
|
|
4
4
|
import {getSyncCommitteeSignatureSet} from "../block/processSyncCommittee.js";
|
|
5
5
|
import {SyncCommitteeCache} from "../cache/syncCommitteeCache.js";
|
|
6
|
-
import {
|
|
7
|
-
import {CachedBeaconStateAllForks} from "../types.js";
|
|
6
|
+
import {IBeaconStateView} from "../stateView/interface.js";
|
|
8
7
|
import {ISignatureSet} from "../util/index.js";
|
|
9
8
|
import {getAttesterSlashingsSignatureSets} from "./attesterSlashings.js";
|
|
10
9
|
import {getBlsToExecutionChangeSignatureSets} from "./blsToExecutionChange.js";
|
|
@@ -32,7 +31,7 @@ export * from "./voluntaryExits.js";
|
|
|
32
31
|
export function getBlockSignatureSets(
|
|
33
32
|
config: BeaconConfig,
|
|
34
33
|
currentSyncCommitteeIndexed: SyncCommitteeCache,
|
|
35
|
-
state:
|
|
34
|
+
state: IBeaconStateView,
|
|
36
35
|
signedBlock: SignedBeaconBlock,
|
|
37
36
|
indexedAttestations: IndexedAttestation[],
|
|
38
37
|
opts?: {
|
|
@@ -48,7 +47,7 @@ export function getBlockSignatureSets(
|
|
|
48
47
|
...getProposerSlashingsSignatureSets(config, signedBlock),
|
|
49
48
|
...getAttesterSlashingsSignatureSets(config, signedBlock),
|
|
50
49
|
...getAttestationsSignatureSets(config, signedBlock, indexedAttestations),
|
|
51
|
-
...getVoluntaryExitsSignatureSets(config,
|
|
50
|
+
...getVoluntaryExitsSignatureSets(config, state, signedBlock),
|
|
52
51
|
];
|
|
53
52
|
|
|
54
53
|
if (!opts?.skipProposerSignature) {
|