@lodestar/state-transition 1.42.0-dev.4411584fd8 → 1.42.0-dev.5007abf468
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/isValidIndexedAttestation.d.ts.map +1 -1
- package/lib/block/isValidIndexedAttestation.js +2 -3
- package/lib/block/isValidIndexedAttestation.js.map +1 -1
- 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/block/processExecutionPayloadEnvelope.d.ts +3 -1
- package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadEnvelope.js +11 -28
- package/lib/block/processExecutionPayloadEnvelope.js.map +1 -1
- package/lib/signatureSets/executionPayloadEnvelope.d.ts +5 -1
- package/lib/signatureSets/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/signatureSets/executionPayloadEnvelope.js +10 -1
- package/lib/signatureSets/executionPayloadEnvelope.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 +11 -7
- package/lib/stateView/beaconStateView.d.ts.map +1 -1
- package/lib/stateView/beaconStateView.js +13 -10
- package/lib/stateView/beaconStateView.js.map +1 -1
- package/lib/stateView/interface.d.ts +14 -9
- package/lib/stateView/interface.d.ts.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/isValidIndexedAttestation.ts +2 -3
- package/src/block/processAttestationsAltair.ts +7 -4
- package/src/block/processExecutionPayloadEnvelope.ts +18 -35
- package/src/signatureSets/executionPayloadEnvelope.ts +26 -2
- package/src/signatureSets/index.ts +3 -4
- package/src/slot/upgradeStateToAltair.ts +2 -1
- package/src/stateView/beaconStateView.ts +31 -13
- package/src/stateView/interface.ts +15 -6
- package/src/util/rootCache.ts +4 -5
- package/src/util/shuffling.ts +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIpD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,OAAO,GACvB,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"isValidIndexedAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIpD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,EAAE,OAAO,GACvB,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAyBT"}
|
|
@@ -42,9 +42,8 @@ export function isValidIndexedAttestationIndices(config, stateSlot, validatorsLe
|
|
|
42
42
|
return false;
|
|
43
43
|
prev = index;
|
|
44
44
|
}
|
|
45
|
-
// check if indices are out of bounds,
|
|
46
|
-
|
|
47
|
-
if (lastIndex && lastIndex >= validatorsLen) {
|
|
45
|
+
// check if indices are out of bounds, `prev` is the highest index since indices are sorted
|
|
46
|
+
if (prev >= validatorsLen) {
|
|
48
47
|
return false;
|
|
49
48
|
}
|
|
50
49
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,kBAAsC,EACtC,eAAwB,EACf;IACT,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,kBAA4C,EAC5C,eAAwB,EACf;IACT,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CACvB,uCAAuC,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAC9E,WAAW,CACZ,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,SAAe,EACf,aAAqB,EACrB,OAAiB,EACR;IACT,+BAA+B;IAC/B,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO;QAC7C,CAAC,CAAC,4BAA4B,GAAG,uBAAuB;QACxD,CAAC,CAAC,4BAA4B,CAAC;IACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,mDAAmD;IACnD,oFAAoF;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,kBAAsC,EACtC,eAAwB,EACf;IACT,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,kBAA4C,EAC5C,eAAwB,EACf;IACT,IAAI,CAAC,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CACvB,uCAAuC,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAC9E,WAAW,CACZ,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,SAAe,EACf,aAAqB,EACrB,OAAiB,EACR;IACT,+BAA+B;IAC/B,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO;QAC7C,CAAC,CAAC,4BAA4B,GAAG,uBAAuB;QACxD,CAAC,CAAC,4BAA4B,CAAC;IACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IACxC,mDAAmD;IACnD,oFAAoF;IACpF,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IAED,2FAA2F;IAC3F,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACb"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BitArray } from "@chainsafe/ssz";
|
|
1
2
|
import { ForkSeq } from "@lodestar/params";
|
|
2
3
|
import { Attestation, Epoch, phase0 } from "@lodestar/types";
|
|
3
4
|
import { BeaconStateTransitionMetrics } from "../metrics.js";
|
|
@@ -7,6 +8,6 @@ export declare function processAttestationsAltair(fork: ForkSeq, state: CachedBe
|
|
|
7
8
|
/**
|
|
8
9
|
* https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
|
|
9
10
|
*/
|
|
10
|
-
export declare function getAttestationParticipationStatus(fork: ForkSeq, data: phase0.AttestationData, inclusionDelay: number, currentEpoch: Epoch, rootCache: RootCache, executionPayloadAvailability:
|
|
11
|
+
export declare function getAttestationParticipationStatus(fork: ForkSeq, data: phase0.AttestationData, inclusionDelay: number, currentEpoch: Epoch, rootCache: RootCache, executionPayloadAvailability: BitArray | null): number;
|
|
11
12
|
export declare function checkpointValueEquals(cp1: phase0.Checkpoint, cp2: phase0.Checkpoint): boolean;
|
|
12
13
|
//# sourceMappingURL=processAttestationsAltair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAYR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAEL,OAAO,EAYR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,uBAAuB,GAAG,sBAAsB,EACvD,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAO,EACtB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CAiIN;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,eAAe,EAC5B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,4BAA4B,EAAE,QAAQ,GAAG,IAAI,GAC5C,MAAM,CAwDR;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAE7F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EFFECTIVE_BALANCE_INCREMENT, ForkSeq, MIN_ATTESTATION_INCLUSION_DELAY, PROPOSER_WEIGHT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, TIMELY_HEAD_FLAG_INDEX, TIMELY_HEAD_WEIGHT, TIMELY_SOURCE_FLAG_INDEX, TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_FLAG_INDEX, TIMELY_TARGET_WEIGHT, WEIGHT_DENOMINATOR, } from "@lodestar/params";
|
|
2
2
|
import { byteArrayEquals, intSqrt } from "@lodestar/utils";
|
|
3
3
|
import { getAttestationWithIndicesSignatureSet } from "../signatureSets/indexedAttestation.js";
|
|
4
|
+
import { BeaconStateView } from "../stateView/beaconStateView.js";
|
|
4
5
|
import { isAttestationSameSlot, isAttestationSameSlotRootCache } from "../util/gloas.js";
|
|
5
6
|
import { increaseBalance, verifySignatureSet } from "../util/index.js";
|
|
6
7
|
import { RootCache } from "../util/rootCache.js";
|
|
@@ -15,7 +16,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
|
|
|
15
16
|
const { epochCtx } = state;
|
|
16
17
|
const { effectiveBalanceIncrements } = epochCtx;
|
|
17
18
|
const stateSlot = state.slot;
|
|
18
|
-
const rootCache = new RootCache(state);
|
|
19
|
+
const rootCache = new RootCache(new BeaconStateView(state));
|
|
19
20
|
const currentEpoch = epochCtx.epoch;
|
|
20
21
|
// Process all attestations first and then increase the balance of the proposer once
|
|
21
22
|
let proposerReward = 0;
|
|
@@ -40,7 +41,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
|
|
|
40
41
|
const epochParticipation = inCurrentEpoch ? state.currentEpochParticipation : state.previousEpochParticipation;
|
|
41
42
|
// Count how much additional weight added to current or previous epoch's builder pending payment (in ETH increment)
|
|
42
43
|
let paymentWeightToAdd = 0;
|
|
43
|
-
const flagsAttestation = getAttestationParticipationStatus(fork, data, stateSlot - data.slot, epochCtx.epoch, rootCache, fork >= ForkSeq.gloas ? state.executionPayloadAvailability
|
|
44
|
+
const flagsAttestation = getAttestationParticipationStatus(fork, data, stateSlot - data.slot, epochCtx.epoch, rootCache, fork >= ForkSeq.gloas ? state.executionPayloadAvailability : null);
|
|
44
45
|
// For each participant, update their participation
|
|
45
46
|
// In epoch processing, this participation info is used to calculate balance updates
|
|
46
47
|
let totalBalanceIncrementsWithWeight = 0;
|
|
@@ -149,7 +150,8 @@ export function getAttestationParticipationStatus(fork, data, inclusionDelay, cu
|
|
|
149
150
|
if (data.index !== 0 && data.index !== 1) {
|
|
150
151
|
throw new Error(`data index must be 0 or 1 index=${data.index}`);
|
|
151
152
|
}
|
|
152
|
-
isMatchingPayload =
|
|
153
|
+
isMatchingPayload =
|
|
154
|
+
Boolean(data.index) === executionPayloadAvailability.get(data.slot % SLOTS_PER_HISTORICAL_ROOT);
|
|
153
155
|
}
|
|
154
156
|
isMatchingHead = isMatchingHead && isMatchingPayload;
|
|
155
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
2
|
import { CachedBeaconStateGloas } from "../types.js";
|
|
3
3
|
export type ProcessExecutionPayloadEnvelopeOpts = {
|
|
4
|
+
verifySignature?: boolean;
|
|
5
|
+
verifyStateRoot?: boolean;
|
|
4
6
|
dontTransferCache?: boolean;
|
|
5
7
|
};
|
|
6
|
-
export declare function processExecutionPayloadEnvelope(state: CachedBeaconStateGloas, signedEnvelope: gloas.SignedExecutionPayloadEnvelope,
|
|
8
|
+
export declare function processExecutionPayloadEnvelope(state: CachedBeaconStateGloas, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, opts?: ProcessExecutionPayloadEnvelopeOpts): CachedBeaconStateGloas;
|
|
7
9
|
//# sourceMappingURL=processExecutionPayloadEnvelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAI3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAOnD,MAAM,MAAM,mCAAmC,GAAG;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAKF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,EAC7B,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,IAAI,CAAC,EAAE,mCAAmC,GACzC,sBAAsB,CAqDxB"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BUILDER_INDEX_SELF_BUILD, DOMAIN_BEACON_BUILDER, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, } from "@lodestar/params";
|
|
1
|
+
import { SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT } from "@lodestar/params";
|
|
3
2
|
import { ssz } from "@lodestar/types";
|
|
4
3
|
import { byteArrayEquals, toHex, toRootHex } from "@lodestar/utils";
|
|
5
|
-
import {
|
|
4
|
+
import { getExecutionPayloadEnvelopeSignatureSet } from "../signatureSets/executionPayloadEnvelope.js";
|
|
5
|
+
import { BeaconStateView } from "../stateView/beaconStateView.js";
|
|
6
|
+
import { computeTimeAtSlot } from "../util/index.js";
|
|
7
|
+
import { verifySignatureSet } from "../util/signatureSets.js";
|
|
6
8
|
import { processConsolidationRequest } from "./processConsolidationRequest.js";
|
|
7
9
|
import { processDepositRequest } from "./processDepositRequest.js";
|
|
8
10
|
import { processWithdrawalRequest } from "./processWithdrawalRequest.js";
|
|
9
11
|
// Unlike other block processing functions which mutate state in-place, this function
|
|
10
12
|
// clones the state and returns the post-state, similar to stateTransition().
|
|
11
13
|
// This function does not call execution engine to verify payload. Need to call it from other place.
|
|
12
|
-
export function processExecutionPayloadEnvelope(state, signedEnvelope,
|
|
14
|
+
export function processExecutionPayloadEnvelope(state, signedEnvelope, opts) {
|
|
15
|
+
const { verifySignature = true, verifyStateRoot = true } = opts ?? {};
|
|
13
16
|
const envelope = signedEnvelope.message;
|
|
14
17
|
const payload = envelope.payload;
|
|
15
18
|
const fork = state.config.getForkSeq(envelope.slot);
|
|
16
|
-
if (
|
|
19
|
+
if (verifySignature && !verifyExecutionPayloadEnvelopeSignature(state, signedEnvelope)) {
|
|
17
20
|
throw Error(`Execution payload envelope has invalid signature builderIndex=${envelope.builderIndex}`);
|
|
18
21
|
}
|
|
19
22
|
// .clone() before mutating state, similar to stateTransition()
|
|
@@ -41,7 +44,7 @@ export function processExecutionPayloadEnvelope(state, signedEnvelope, verify, o
|
|
|
41
44
|
postState.executionPayloadAvailability.set(postState.slot % SLOTS_PER_HISTORICAL_ROOT, true);
|
|
42
45
|
postState.latestBlockHash = payload.blockHash;
|
|
43
46
|
postState.commit();
|
|
44
|
-
if (
|
|
47
|
+
if (verifyStateRoot && !byteArrayEquals(envelope.stateRoot, postState.hashTreeRoot())) {
|
|
45
48
|
throw new Error(`Envelope's state root does not match state envelope=${toRootHex(envelope.stateRoot)} state=${toRootHex(postState.hashTreeRoot())}`);
|
|
46
49
|
}
|
|
47
50
|
return postState;
|
|
@@ -93,27 +96,7 @@ function validateExecutionPayloadEnvelope(state, envelope) {
|
|
|
93
96
|
// Skipped: Verify the execution payload is valid
|
|
94
97
|
}
|
|
95
98
|
function verifyExecutionPayloadEnvelopeSignature(state, signedEnvelope) {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
const signingRoot = computeSigningRoot(ssz.gloas.ExecutionPayloadEnvelope, signedEnvelope.message, domain);
|
|
99
|
-
try {
|
|
100
|
-
let publicKey;
|
|
101
|
-
if (builderIndex === BUILDER_INDEX_SELF_BUILD) {
|
|
102
|
-
const validatorIndex = state.latestBlockHeader.proposerIndex;
|
|
103
|
-
const proposerPubkey = state.epochCtx.pubkeyCache.get(validatorIndex);
|
|
104
|
-
if (!proposerPubkey) {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
publicKey = proposerPubkey;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
publicKey = PublicKey.fromBytes(state.builders.getReadonly(builderIndex).pubkey);
|
|
111
|
-
}
|
|
112
|
-
const signature = Signature.fromBytes(signedEnvelope.signature, true);
|
|
113
|
-
return verify(signingRoot, publicKey, signature);
|
|
114
|
-
}
|
|
115
|
-
catch (_e) {
|
|
116
|
-
return false; // Catch all BLS errors: failed key validation, failed signature validation, invalid signature
|
|
117
|
-
}
|
|
99
|
+
const signatureSet = getExecutionPayloadEnvelopeSignatureSet(state.config, state.epochCtx.pubkeyCache, new BeaconStateView(state), signedEnvelope, state.latestBlockHeader.proposerIndex);
|
|
100
|
+
return verifySignatureSet(signatureSet);
|
|
118
101
|
}
|
|
119
102
|
//# sourceMappingURL=processExecutionPayloadEnvelope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
-
import { gloas } from "@lodestar/types";
|
|
2
|
+
import { ValidatorIndex, gloas } from "@lodestar/types";
|
|
3
|
+
import { PubkeyCache } from "../cache/pubkeyCache.js";
|
|
4
|
+
import { IBeaconStateView } from "../stateView/interface.js";
|
|
5
|
+
import { type SingleSignatureSet } from "../util/signatureSets.js";
|
|
3
6
|
export declare function getExecutionPayloadEnvelopeSigningRoot(config: BeaconConfig, envelope: gloas.ExecutionPayloadEnvelope): Uint8Array;
|
|
7
|
+
export declare function getExecutionPayloadEnvelopeSignatureSet(config: BeaconConfig, pubkeyCache: PubkeyCache, state: IBeaconStateView, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, proposerIndex: ValidatorIndex): SingleSignatureSet;
|
|
4
8
|
//# sourceMappingURL=executionPayloadEnvelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,cAAc,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAC,KAAK,kBAAkB,EAAyC,MAAM,0BAA0B,CAAC;AAEzG,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,GACvC,UAAU,CAIZ;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,aAAa,EAAE,cAAc,GAC5B,kBAAkB,CAYpB"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PublicKey } from "@chainsafe/blst";
|
|
2
|
+
import { BUILDER_INDEX_SELF_BUILD, DOMAIN_BEACON_BUILDER } from "@lodestar/params";
|
|
2
3
|
import { ssz } from "@lodestar/types";
|
|
3
4
|
import { computeSigningRoot } from "../util/index.js";
|
|
5
|
+
import { createSingleSignatureSetFromComponents } from "../util/signatureSets.js";
|
|
4
6
|
export function getExecutionPayloadEnvelopeSigningRoot(config, envelope) {
|
|
5
7
|
const domain = config.getDomain(envelope.slot, DOMAIN_BEACON_BUILDER);
|
|
6
8
|
return computeSigningRoot(ssz.gloas.ExecutionPayloadEnvelope, envelope, domain);
|
|
7
9
|
}
|
|
10
|
+
export function getExecutionPayloadEnvelopeSignatureSet(config, pubkeyCache, state, signedEnvelope, proposerIndex) {
|
|
11
|
+
const envelope = signedEnvelope.message;
|
|
12
|
+
const pubkey = envelope.builderIndex === BUILDER_INDEX_SELF_BUILD
|
|
13
|
+
? pubkeyCache.getOrThrow(proposerIndex)
|
|
14
|
+
: PublicKey.fromBytes(state.getBuilder(envelope.builderIndex).pubkey);
|
|
15
|
+
return createSingleSignatureSetFromComponents(pubkey, getExecutionPayloadEnvelopeSigningRoot(config, envelope), signedEnvelope.signature);
|
|
16
|
+
}
|
|
8
17
|
//# sourceMappingURL=executionPayloadEnvelope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAwB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA0B,sCAAsC,EAAC,MAAM,0BAA0B,CAAC;AAEzG,MAAM,UAAU,sCAAsC,CACpD,MAAoB,EACpB,QAAwC,EAC5B;IACZ,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEtE,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAAA,CACjF;AAED,MAAM,UAAU,uCAAuC,CACrD,MAAoB,EACpB,WAAwB,EACxB,KAAuB,EACvB,cAAoD,EACpD,aAA6B,EACT;IACpB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC;IACxC,MAAM,MAAM,GACV,QAAQ,CAAC,YAAY,KAAK,wBAAwB;QAChD,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC;QACvC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IAE1E,OAAO,sCAAsC,CAC3C,MAAM,EACN,sCAAsC,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxD,cAAc,CAAC,SAAS,CACzB,CAAC;AAAA,CACH"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BeaconConfig } from "@lodestar/config";
|
|
2
2
|
import { IndexedAttestation, SignedBeaconBlock } from "@lodestar/types";
|
|
3
3
|
import { SyncCommitteeCache } from "../cache/syncCommitteeCache.js";
|
|
4
|
-
import {
|
|
4
|
+
import { IBeaconStateView } from "../stateView/interface.js";
|
|
5
5
|
import { ISignatureSet } from "../util/index.js";
|
|
6
6
|
export * from "./attesterSlashings.js";
|
|
7
7
|
export * from "./blsToExecutionChange.js";
|
|
@@ -17,7 +17,7 @@ export * from "./voluntaryExits.js";
|
|
|
17
17
|
* Includes all signatures on the block (except the deposit signatures) for verification.
|
|
18
18
|
* Deposits are not included because they can legally have invalid signatures.
|
|
19
19
|
*/
|
|
20
|
-
export declare function getBlockSignatureSets(config: BeaconConfig, currentSyncCommitteeIndexed: SyncCommitteeCache, state:
|
|
20
|
+
export declare function getBlockSignatureSets(config: BeaconConfig, currentSyncCommitteeIndexed: SyncCommitteeCache, state: IBeaconStateView, signedBlock: SignedBeaconBlock, indexedAttestations: IndexedAttestation[], opts?: {
|
|
21
21
|
/** Useful since block proposer signature is verified beforehand on gossip validation */
|
|
22
22
|
skipProposerSignature?: boolean;
|
|
23
23
|
}): ISignatureSet[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAS/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,2BAA2B,EAAE,kBAAkB,EAC/C,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,IAAI,CAAC,EAAE;IACL,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,aAAa,EAAE,CAyCjB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ForkSeq } from "@lodestar/params";
|
|
2
2
|
import { getSyncCommitteeSignatureSet } from "../block/processSyncCommittee.js";
|
|
3
|
-
import { BeaconStateView } from "../stateView/beaconStateView.js";
|
|
4
3
|
import { getAttesterSlashingsSignatureSets } from "./attesterSlashings.js";
|
|
5
4
|
import { getBlsToExecutionChangeSignatureSets } from "./blsToExecutionChange.js";
|
|
6
5
|
import { getAttestationsSignatureSets } from "./indexedAttestation.js";
|
|
@@ -30,7 +29,7 @@ export function getBlockSignatureSets(config, currentSyncCommitteeIndexed, state
|
|
|
30
29
|
...getProposerSlashingsSignatureSets(config, signedBlock),
|
|
31
30
|
...getAttesterSlashingsSignatureSets(config, signedBlock),
|
|
32
31
|
...getAttestationsSignatureSets(config, signedBlock, indexedAttestations),
|
|
33
|
-
...getVoluntaryExitsSignatureSets(config,
|
|
32
|
+
...getVoluntaryExitsSignatureSets(config, state, signedBlock),
|
|
34
33
|
];
|
|
35
34
|
if (!opts?.skipProposerSignature) {
|
|
36
35
|
signatureSets.push(getBlockProposerSignatureSet(config, signedBlock));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,4BAA4B,EAAC,MAAM,kCAAkC,CAAC;AAI9E,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,oCAAoC,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,8BAA8B,EAAC,MAAM,qBAAqB,CAAC;AAEnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,2BAA+C,EAC/C,KAAuB,EACvB,WAA8B,EAC9B,mBAAyC,EACzC,IAGC,EACgB;IACjB,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG;QACpB,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;QACxD,GAAG,iCAAiC,CAAC,MAAM,EAAE,WAAW,CAAC;QACzD,GAAG,iCAAiC,CAAC,MAAM,EAAE,WAAW,CAAC;QACzD,GAAG,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC;QACzE,GAAG,8BAA8B,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;KAC9D,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,2DAA2D;IAC3D,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,yBAAyB,GAAG,4BAA4B,CAC5D,MAAM,EACN,2BAA2B,EAC1B,WAAwC,CAAC,OAAO,CAClD,CAAC;QACF,2FAA2F;QAC3F,IAAI,yBAAyB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,iCAAiC,GAAG,oCAAoC,CAC5E,MAAM,EACN,WAAwC,CACzC,CAAC;QACF,IAAI,iCAAiC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,aAAa,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AAAA,CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeStateToAltair.d.ts","sourceRoot":"","sources":["../../src/slot/upgradeStateToAltair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgradeStateToAltair.d.ts","sourceRoot":"","sources":["../../src/slot/upgradeStateToAltair.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,uBAAuB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAK7E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,uBAAuB,GAAG,uBAAuB,CAwGlG"}
|
|
@@ -2,6 +2,7 @@ import { ForkSeq } from "@lodestar/params";
|
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
3
|
import { getAttestationParticipationStatus } from "../block/processAttestationsAltair.js";
|
|
4
4
|
import { getCachedBeaconState } from "../cache/stateCache.js";
|
|
5
|
+
import { BeaconStateView } from "../stateView/beaconStateView.js";
|
|
5
6
|
import { RootCache, newZeroedArray } from "../util/index.js";
|
|
6
7
|
import { getNextSyncCommittee } from "../util/syncCommittee.js";
|
|
7
8
|
import { sumTargetUnslashedBalanceIncrements } from "../util/targetUnslashedBalance.js";
|
|
@@ -98,7 +99,7 @@ export function upgradeStateToAltair(statePhase0) {
|
|
|
98
99
|
*/
|
|
99
100
|
function translateParticipation(state, pendingAttesations) {
|
|
100
101
|
const { epochCtx } = state;
|
|
101
|
-
const rootCache = new RootCache(state);
|
|
102
|
+
const rootCache = new RootCache(new BeaconStateView(state));
|
|
102
103
|
const epochParticipation = state.previousEpochParticipation;
|
|
103
104
|
for (const attestation of pendingAttesations.getAllReadonly()) {
|
|
104
105
|
const data = attestation.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgradeStateToAltair.js","sourceRoot":"","sources":["../../src/slot/upgradeStateToAltair.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,iCAAiC,EAAC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"upgradeStateToAltair.js","sourceRoot":"","sources":["../../src/slot/upgradeStateToAltair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { CompactMultiProof } from "@chainsafe/persistent-merkle-tree";
|
|
2
|
-
import { ByteViews } from "@chainsafe/ssz";
|
|
2
|
+
import { BitArray, ByteViews } from "@chainsafe/ssz";
|
|
3
3
|
import { BeaconConfig } from "@lodestar/config";
|
|
4
|
-
import { BeaconBlock, BlindedBeaconBlock, BuilderIndex, Bytes32, Epoch, ExecutionPayloadBid, ExecutionPayloadHeader, Root, RootHex, SignedBeaconBlock, SignedBlindedBeaconBlock, Slot, SyncCommittee, ValidatorIndex, capella, electra, fulu, gloas, phase0, rewards } from "@lodestar/types";
|
|
4
|
+
import { BeaconBlock, BeaconState, BlindedBeaconBlock, BuilderIndex, Bytes32, Epoch, ExecutionPayloadBid, ExecutionPayloadHeader, Root, RootHex, SignedBeaconBlock, SignedBlindedBeaconBlock, Slot, SyncCommittee, ValidatorIndex, capella, electra, fulu, gloas, phase0, rewards } from "@lodestar/types";
|
|
5
5
|
import { Checkpoint, Fork } from "@lodestar/types/phase0";
|
|
6
|
+
import { ProcessExecutionPayloadEnvelopeOpts } from "../block/processExecutionPayloadEnvelope.js";
|
|
6
7
|
import { VoluntaryExitValidity } from "../block/processVoluntaryExit.js";
|
|
7
8
|
import { EffectiveBalanceIncrements } from "../cache/effectiveBalanceIncrements.js";
|
|
8
9
|
import { EpochTransitionCacheOpts } from "../cache/epochTransitionCache.js";
|
|
10
|
+
import { PubkeyCache } from "../cache/pubkeyCache.js";
|
|
9
11
|
import { RewardCache } from "../cache/rewardCache.js";
|
|
10
12
|
import { CachedBeaconStateAllForks } from "../cache/stateCache.js";
|
|
11
13
|
import { SyncCommitteeCache } from "../cache/syncCommitteeCache.js";
|
|
@@ -71,7 +73,7 @@ export declare class BeaconStateView implements IBeaconStateView {
|
|
|
71
73
|
get pendingConsolidations(): electra.PendingConsolidations;
|
|
72
74
|
get pendingConsolidationsCount(): number;
|
|
73
75
|
get proposerLookahead(): fulu.ProposerLookahead;
|
|
74
|
-
get executionPayloadAvailability():
|
|
76
|
+
get executionPayloadAvailability(): BitArray;
|
|
75
77
|
get latestExecutionPayloadBid(): ExecutionPayloadBid;
|
|
76
78
|
getBuilder(index: BuilderIndex): gloas.Builder;
|
|
77
79
|
canBuilderCoverBid(builderIndex: BuilderIndex, bidAmount: number): boolean;
|
|
@@ -79,7 +81,7 @@ export declare class BeaconStateView implements IBeaconStateView {
|
|
|
79
81
|
* Return the index of the validator in the PTC committee for the given slot.
|
|
80
82
|
* return -1 if validator is not in the PTC committee for the given slot.
|
|
81
83
|
*/
|
|
82
|
-
|
|
84
|
+
getIndexInPayloadTimelinessCommittee(validatorIndex: ValidatorIndex, slot: Slot): number;
|
|
83
85
|
getShufflingAtEpoch(epoch: Epoch): EpochShuffling;
|
|
84
86
|
get previousDecisionRoot(): RootHex;
|
|
85
87
|
get currentDecisionRoot(): RootHex;
|
|
@@ -100,6 +102,7 @@ export declare class BeaconStateView implements IBeaconStateView {
|
|
|
100
102
|
get nextSyncCommittee(): SyncCommittee;
|
|
101
103
|
get currentSyncCommitteeIndexed(): SyncCommitteeCache;
|
|
102
104
|
get syncProposerReward(): number;
|
|
105
|
+
getIndexedSyncCommittee(slot: Slot): SyncCommitteeCache;
|
|
103
106
|
getIndexedSyncCommitteeAtEpoch(epoch: Epoch): SyncCommitteeCache;
|
|
104
107
|
get effectiveBalanceIncrements(): EffectiveBalanceIncrements;
|
|
105
108
|
getEffectiveBalanceIncrementsZeroInactive(): EffectiveBalanceIncrements;
|
|
@@ -140,6 +143,7 @@ export declare class BeaconStateView implements IBeaconStateView {
|
|
|
140
143
|
get createdWithTransferCache(): boolean;
|
|
141
144
|
isStateValidatorsNodesPopulated(): boolean;
|
|
142
145
|
loadOtherState(stateBytes: Uint8Array, seedValidatorsBytes?: Uint8Array): IBeaconStateView;
|
|
146
|
+
toValue(): BeaconState;
|
|
143
147
|
serialize(): Uint8Array;
|
|
144
148
|
serializedSize(): number;
|
|
145
149
|
serializeToBytes(output: ByteViews, offset: number): number;
|
|
@@ -151,10 +155,10 @@ export declare class BeaconStateView implements IBeaconStateView {
|
|
|
151
155
|
processSlots(slot: Slot, epochTransitionCacheOpts?: EpochTransitionCacheOpts & {
|
|
152
156
|
dontTransferCache?: boolean;
|
|
153
157
|
}, modules?: StateTransitionModules): IBeaconStateView;
|
|
154
|
-
processExecutionPayloadEnvelope(signedEnvelope: gloas.SignedExecutionPayloadEnvelope,
|
|
158
|
+
processExecutionPayloadEnvelope(signedEnvelope: gloas.SignedExecutionPayloadEnvelope, opts?: ProcessExecutionPayloadEnvelopeOpts): BeaconStateView;
|
|
155
159
|
}
|
|
156
160
|
/**
|
|
157
|
-
* Create BeaconStateView for historical state regen,
|
|
161
|
+
* Create BeaconStateView for historical state regen, this is called from a worker thread.
|
|
158
162
|
*/
|
|
159
|
-
export declare function createBeaconStateViewForHistoricalRegen(config: BeaconConfig, stateBytes: Uint8Array): IBeaconStateView;
|
|
163
|
+
export declare function createBeaconStateViewForHistoricalRegen(config: BeaconConfig, stateBytes: Uint8Array, pubkeyCache: PubkeyCache): IBeaconStateView;
|
|
160
164
|
//# sourceMappingURL=beaconStateView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconStateView.d.ts","sourceRoot":"","sources":["../../src/stateView/beaconStateView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAA+B,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"beaconStateView.d.ts","sourceRoot":"","sources":["../../src/stateView/beaconStateView.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import { getValidatorStatus, mapToGeneralStatus, } from "@lodestar/types";
|
|
|
4
4
|
import { processExecutionPayloadEnvelope } from "../block/index.js";
|
|
5
5
|
import { VoluntaryExitValidity, getVoluntaryExitValidity } from "../block/processVoluntaryExit.js";
|
|
6
6
|
import { getExpectedWithdrawals } from "../block/processWithdrawals.js";
|
|
7
|
-
import { createPubkeyCache } from "../cache/pubkeyCache.js";
|
|
8
7
|
import { createCachedBeaconState, isStateValidatorsNodesPopulated, } from "../cache/stateCache.js";
|
|
9
8
|
import { computeUnrealizedCheckpoints } from "../epoch/computeUnrealizedCheckpoints.js";
|
|
10
9
|
import { getFinalizedRootProof, getSyncCommitteesWitness } from "../lightClient/proofs.js";
|
|
@@ -250,9 +249,7 @@ export class BeaconStateView {
|
|
|
250
249
|
throw new Error("executionPayloadAvailability is not available before GLOAS");
|
|
251
250
|
}
|
|
252
251
|
if (this._executionPayloadAvailability === null) {
|
|
253
|
-
this._executionPayloadAvailability = this.cachedState.executionPayloadAvailability
|
|
254
|
-
.toValue()
|
|
255
|
-
.toBoolArray();
|
|
252
|
+
this._executionPayloadAvailability = this.cachedState.executionPayloadAvailability.toValue();
|
|
256
253
|
}
|
|
257
254
|
return this._executionPayloadAvailability;
|
|
258
255
|
}
|
|
@@ -281,7 +278,7 @@ export class BeaconStateView {
|
|
|
281
278
|
* Return the index of the validator in the PTC committee for the given slot.
|
|
282
279
|
* return -1 if validator is not in the PTC committee for the given slot.
|
|
283
280
|
*/
|
|
284
|
-
|
|
281
|
+
getIndexInPayloadTimelinessCommittee(validatorIndex, slot) {
|
|
285
282
|
if (this.config.getForkSeq(this.cachedState.slot) < ForkSeq.gloas) {
|
|
286
283
|
throw new Error("PTC committees are not supported before GLOAS");
|
|
287
284
|
}
|
|
@@ -354,6 +351,9 @@ export class BeaconStateView {
|
|
|
354
351
|
get syncProposerReward() {
|
|
355
352
|
return this.cachedState.epochCtx.syncProposerReward;
|
|
356
353
|
}
|
|
354
|
+
getIndexedSyncCommittee(slot) {
|
|
355
|
+
return this.cachedState.epochCtx.getIndexedSyncCommittee(slot);
|
|
356
|
+
}
|
|
357
357
|
getIndexedSyncCommitteeAtEpoch(epoch) {
|
|
358
358
|
return this.cachedState.epochCtx.getIndexedSyncCommitteeAtEpoch(epoch);
|
|
359
359
|
}
|
|
@@ -485,6 +485,9 @@ export class BeaconStateView {
|
|
|
485
485
|
cachedState.balances.getAll();
|
|
486
486
|
return new BeaconStateView(cachedState);
|
|
487
487
|
}
|
|
488
|
+
toValue() {
|
|
489
|
+
return this.cachedState.toValue();
|
|
490
|
+
}
|
|
488
491
|
serialize() {
|
|
489
492
|
return this.cachedState.serialize();
|
|
490
493
|
}
|
|
@@ -516,20 +519,20 @@ export class BeaconStateView {
|
|
|
516
519
|
const newState = processSlots(this.cachedState, slot, epochTransitionCacheOpts, modules);
|
|
517
520
|
return new BeaconStateView(newState);
|
|
518
521
|
}
|
|
519
|
-
processExecutionPayloadEnvelope(signedEnvelope,
|
|
522
|
+
processExecutionPayloadEnvelope(signedEnvelope, opts) {
|
|
520
523
|
const fork = this.config.getForkName(this.cachedState.slot);
|
|
521
524
|
if (!isForkPostGloas(fork)) {
|
|
522
525
|
throw Error(`processExecutionPayloadEnvelope is only available for gloas+ forks, got fork=${fork}`);
|
|
523
526
|
}
|
|
524
|
-
processExecutionPayloadEnvelope(this.cachedState, signedEnvelope,
|
|
527
|
+
const postPayloadState = processExecutionPayloadEnvelope(this.cachedState, signedEnvelope, opts);
|
|
528
|
+
return new BeaconStateView(postPayloadState);
|
|
525
529
|
}
|
|
526
530
|
}
|
|
527
531
|
/**
|
|
528
|
-
* Create BeaconStateView for historical state regen,
|
|
532
|
+
* Create BeaconStateView for historical state regen, this is called from a worker thread.
|
|
529
533
|
*/
|
|
530
|
-
export function createBeaconStateViewForHistoricalRegen(config, stateBytes) {
|
|
534
|
+
export function createBeaconStateViewForHistoricalRegen(config, stateBytes, pubkeyCache) {
|
|
531
535
|
const state = getStateTypeFromBytes(config, stateBytes).deserializeToViewDU(stateBytes);
|
|
532
|
-
const pubkeyCache = createPubkeyCache();
|
|
533
536
|
syncPubkeyCache(state, pubkeyCache);
|
|
534
537
|
const cachedState = createCachedBeaconState(state, {
|
|
535
538
|
config,
|