@lodestar/state-transition 1.43.0-dev.4fb05c546d → 1.43.0-dev.4fe6b362c9
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/index.d.ts +2 -2
- package/lib/block/index.d.ts.map +1 -1
- package/lib/block/index.js +11 -4
- package/lib/block/index.js.map +1 -1
- package/lib/block/processConsolidationRequest.d.ts.map +1 -1
- package/lib/block/processConsolidationRequest.js +2 -1
- package/lib/block/processConsolidationRequest.js.map +1 -1
- package/lib/block/processDepositRequest.d.ts +3 -11
- package/lib/block/processDepositRequest.d.ts.map +1 -1
- package/lib/block/processDepositRequest.js +27 -35
- package/lib/block/processDepositRequest.js.map +1 -1
- package/lib/block/processParentExecutionPayload.d.ts +20 -0
- package/lib/block/processParentExecutionPayload.d.ts.map +1 -0
- package/lib/block/processParentExecutionPayload.js +101 -0
- package/lib/block/processParentExecutionPayload.js.map +1 -0
- package/lib/block/processWithdrawals.d.ts.map +1 -1
- package/lib/block/processWithdrawals.js +10 -4
- package/lib/block/processWithdrawals.js.map +1 -1
- package/lib/cache/epochCache.js +3 -3
- package/lib/cache/epochCache.js.map +1 -1
- package/lib/epoch/processPendingDeposits.d.ts.map +1 -1
- package/lib/epoch/processPendingDeposits.js +4 -2
- package/lib/epoch/processPendingDeposits.js.map +1 -1
- package/lib/lightClient/spec/index.d.ts +22 -0
- package/lib/lightClient/spec/index.d.ts.map +1 -0
- package/lib/lightClient/spec/index.js +58 -0
- package/lib/lightClient/spec/index.js.map +1 -0
- package/lib/lightClient/spec/isBetterUpdate.d.ts +23 -0
- package/lib/lightClient/spec/isBetterUpdate.d.ts.map +1 -0
- package/lib/lightClient/spec/isBetterUpdate.js +66 -0
- package/lib/lightClient/spec/isBetterUpdate.js.map +1 -0
- package/lib/lightClient/spec/processLightClientUpdate.d.ts +12 -0
- package/lib/lightClient/spec/processLightClientUpdate.d.ts.map +1 -0
- package/lib/lightClient/spec/processLightClientUpdate.js +80 -0
- package/lib/lightClient/spec/processLightClientUpdate.js.map +1 -0
- package/lib/lightClient/spec/store.d.ts +45 -0
- package/lib/lightClient/spec/store.d.ts.map +1 -0
- package/lib/lightClient/spec/store.js +56 -0
- package/lib/lightClient/spec/store.js.map +1 -0
- package/lib/lightClient/spec/utils.d.ts +47 -0
- package/lib/lightClient/spec/utils.d.ts.map +1 -0
- package/lib/lightClient/spec/utils.js +197 -0
- package/lib/lightClient/spec/utils.js.map +1 -0
- package/lib/lightClient/spec/validateLightClientBootstrap.d.ts +4 -0
- package/lib/lightClient/spec/validateLightClientBootstrap.d.ts.map +1 -0
- package/lib/lightClient/spec/validateLightClientBootstrap.js +22 -0
- package/lib/lightClient/spec/validateLightClientBootstrap.js.map +1 -0
- package/lib/lightClient/spec/validateLightClientUpdate.d.ts +5 -0
- package/lib/lightClient/spec/validateLightClientUpdate.d.ts.map +1 -0
- package/lib/lightClient/spec/validateLightClientUpdate.js +88 -0
- package/lib/lightClient/spec/validateLightClientUpdate.js.map +1 -0
- package/lib/signatureSets/executionPayloadEnvelope.js +1 -1
- package/lib/signatureSets/executionPayloadEnvelope.js.map +1 -1
- package/lib/signatureSets/index.d.ts +1 -0
- package/lib/signatureSets/index.d.ts.map +1 -1
- package/lib/signatureSets/index.js +1 -0
- package/lib/signatureSets/index.js.map +1 -1
- package/lib/signatureSets/proposerPreferences.d.ts +4 -0
- package/lib/signatureSets/proposerPreferences.d.ts.map +1 -0
- package/lib/signatureSets/proposerPreferences.js +8 -0
- package/lib/signatureSets/proposerPreferences.js.map +1 -0
- package/lib/slot/upgradeStateToElectra.d.ts.map +1 -1
- package/lib/slot/upgradeStateToElectra.js +2 -2
- package/lib/slot/upgradeStateToElectra.js.map +1 -1
- package/lib/slot/upgradeStateToGloas.d.ts.map +1 -1
- package/lib/slot/upgradeStateToGloas.js +34 -28
- package/lib/slot/upgradeStateToGloas.js.map +1 -1
- package/lib/stateView/beaconStateView.d.ts +20 -7
- package/lib/stateView/beaconStateView.d.ts.map +1 -1
- package/lib/stateView/beaconStateView.js +52 -16
- package/lib/stateView/beaconStateView.js.map +1 -1
- package/lib/stateView/interface.d.ts +14 -4
- package/lib/stateView/interface.d.ts.map +1 -1
- package/lib/stateView/interface.js.map +1 -1
- package/lib/util/computeAnchorCheckpoint.d.ts +1 -1
- package/lib/util/computeAnchorCheckpoint.d.ts.map +1 -1
- package/lib/util/computeAnchorCheckpoint.js +6 -19
- package/lib/util/computeAnchorCheckpoint.js.map +1 -1
- package/lib/util/epoch.d.ts.map +1 -1
- package/lib/util/epoch.js +6 -4
- package/lib/util/epoch.js.map +1 -1
- package/lib/util/gloas.d.ts +0 -1
- package/lib/util/gloas.d.ts.map +1 -1
- package/lib/util/gloas.js +0 -3
- package/lib/util/gloas.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/loadState/loadState.js +4 -4
- package/lib/util/loadState/loadState.js.map +1 -1
- package/lib/util/pendingDepositsLookup.d.ts +40 -0
- package/lib/util/pendingDepositsLookup.d.ts.map +1 -0
- package/lib/util/pendingDepositsLookup.js +84 -0
- package/lib/util/pendingDepositsLookup.js.map +1 -0
- package/lib/util/shuffling.d.ts +6 -5
- package/lib/util/shuffling.d.ts.map +1 -1
- package/lib/util/shuffling.js +13 -15
- package/lib/util/shuffling.js.map +1 -1
- package/lib/util/validator.d.ts +14 -2
- package/lib/util/validator.d.ts.map +1 -1
- package/lib/util/validator.js +24 -2
- package/lib/util/validator.js.map +1 -1
- package/package.json +13 -8
- package/src/block/index.ts +12 -4
- package/src/block/processConsolidationRequest.ts +2 -1
- package/src/block/processDepositRequest.ts +29 -47
- package/src/block/processParentExecutionPayload.ts +117 -0
- package/src/block/processWithdrawals.ts +12 -4
- package/src/cache/epochCache.ts +3 -3
- package/src/epoch/processPendingDeposits.ts +5 -2
- package/src/lightClient/spec/index.ts +101 -0
- package/src/lightClient/spec/isBetterUpdate.ts +94 -0
- package/src/lightClient/spec/processLightClientUpdate.ts +119 -0
- package/src/lightClient/spec/store.ts +106 -0
- package/src/lightClient/spec/utils.ts +317 -0
- package/src/lightClient/spec/validateLightClientBootstrap.ts +39 -0
- package/src/lightClient/spec/validateLightClientUpdate.ts +145 -0
- package/src/signatureSets/executionPayloadEnvelope.ts +1 -1
- package/src/signatureSets/index.ts +1 -0
- package/src/signatureSets/proposerPreferences.ts +12 -0
- package/src/slot/upgradeStateToElectra.ts +4 -2
- package/src/slot/upgradeStateToGloas.ts +44 -44
- package/src/stateView/beaconStateView.ts +60 -25
- package/src/stateView/interface.ts +16 -7
- package/src/util/computeAnchorCheckpoint.ts +6 -19
- package/src/util/epoch.ts +13 -4
- package/src/util/gloas.ts +0 -4
- package/src/util/index.ts +1 -0
- package/src/util/loadState/loadState.ts +4 -4
- package/src/util/pendingDepositsLookup.ts +105 -0
- package/src/util/shuffling.ts +17 -15
- package/src/util/validator.ts +42 -2
- package/lib/block/processExecutionPayloadEnvelope.d.ts +0 -9
- package/lib/block/processExecutionPayloadEnvelope.d.ts.map +0 -1
- package/lib/block/processExecutionPayloadEnvelope.js +0 -106
- package/lib/block/processExecutionPayloadEnvelope.js.map +0 -1
- package/src/block/processExecutionPayloadEnvelope.ts +0 -175
package/lib/block/index.d.ts
CHANGED
|
@@ -7,13 +7,13 @@ import { processBlockHeader } from "./processBlockHeader.js";
|
|
|
7
7
|
import { processEth1Data } from "./processEth1Data.js";
|
|
8
8
|
import { processExecutionPayload } from "./processExecutionPayload.js";
|
|
9
9
|
import { processExecutionPayloadBid } from "./processExecutionPayloadBid.js";
|
|
10
|
-
import {
|
|
10
|
+
import { processParentExecutionPayload } from "./processParentExecutionPayload.js";
|
|
11
11
|
import { processPayloadAttestation } from "./processPayloadAttestation.js";
|
|
12
12
|
import { processRandao } from "./processRandao.js";
|
|
13
13
|
import { processSyncAggregate } from "./processSyncCommittee.js";
|
|
14
14
|
import { processWithdrawals } from "./processWithdrawals.js";
|
|
15
15
|
import { ProcessBlockOpts } from "./types.js";
|
|
16
|
-
export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation,
|
|
16
|
+
export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation, processParentExecutionPayload, };
|
|
17
17
|
export * from "./externalData.js";
|
|
18
18
|
export * from "./initiateValidatorExit.js";
|
|
19
19
|
export * from "./isValidIndexedAttestation.js";
|
package/lib/block/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,yBAAyB,EAI1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,yBAAyB,EAI1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAAC,6BAA6B,EAAC,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,CAAC;AAEF,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AAEvC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,WAAW,GAAG,kBAAkB,EACvC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,EAClD,IAAI,CAAC,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CA4DN"}
|
package/lib/block/index.js
CHANGED
|
@@ -6,15 +6,15 @@ import { processBlockHeader } from "./processBlockHeader.js";
|
|
|
6
6
|
import { processEth1Data } from "./processEth1Data.js";
|
|
7
7
|
import { processExecutionPayload } from "./processExecutionPayload.js";
|
|
8
8
|
import { processExecutionPayloadBid } from "./processExecutionPayloadBid.js";
|
|
9
|
-
import { processExecutionPayloadEnvelope } from "./processExecutionPayloadEnvelope.js";
|
|
10
9
|
import { processOperations } from "./processOperations.js";
|
|
10
|
+
import { processParentExecutionPayload } from "./processParentExecutionPayload.js";
|
|
11
11
|
import { processPayloadAttestation } from "./processPayloadAttestation.js";
|
|
12
12
|
import { processRandao } from "./processRandao.js";
|
|
13
13
|
import { processSyncAggregate } from "./processSyncCommittee.js";
|
|
14
14
|
import { processWithdrawals } from "./processWithdrawals.js";
|
|
15
15
|
import { ProposerRewardType } from "./types.js";
|
|
16
16
|
// Spec tests
|
|
17
|
-
export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation,
|
|
17
|
+
export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation, processParentExecutionPayload, };
|
|
18
18
|
export * from "./externalData.js";
|
|
19
19
|
export * from "./initiateValidatorExit.js";
|
|
20
20
|
export * from "./isValidIndexedAttestation.js";
|
|
@@ -22,9 +22,14 @@ export * from "./processDepositRequest.js";
|
|
|
22
22
|
export * from "./processOperations.js";
|
|
23
23
|
export function processBlock(fork, state, block, externalData, opts, metrics) {
|
|
24
24
|
const { verifySignatures = true } = opts ?? {};
|
|
25
|
+
// Apply the parent's deferred payload effects before everything else. Must run before
|
|
26
|
+
// processBlockHeader and processExecutionPayloadBid so subsequent steps see the updated state.
|
|
27
|
+
if (fork >= ForkSeq.gloas) {
|
|
28
|
+
processParentExecutionPayload(state, block);
|
|
29
|
+
}
|
|
25
30
|
processBlockHeader(state, block);
|
|
26
31
|
if (fork >= ForkSeq.gloas) {
|
|
27
|
-
//
|
|
32
|
+
// Parent payload's execution requests were already applied by processParentExecutionPayload above
|
|
28
33
|
processWithdrawals(fork, state);
|
|
29
34
|
}
|
|
30
35
|
else if (fork >= ForkSeq.capella) {
|
|
@@ -33,7 +38,9 @@ export function processBlock(fork, state, block, externalData, opts, metrics) {
|
|
|
33
38
|
}
|
|
34
39
|
// The call to the process_execution_payload must happen before the call to the process_randao as the former depends
|
|
35
40
|
// on the randao_mix computed with the reveal of the previous block.
|
|
36
|
-
//
|
|
41
|
+
// Post-gloas: process_execution_payload is not part of block processing. The parent's payload
|
|
42
|
+
// effects are applied earlier via processParentExecutionPayload, and each execution payload is
|
|
43
|
+
// verified out-of-band via verifyExecutionPayloadEnvelope when it arrives.
|
|
37
44
|
if (fork < ForkSeq.gloas &&
|
|
38
45
|
fork >= ForkSeq.bellatrix &&
|
|
39
46
|
isExecutionEnabled(state, block)) {
|
package/lib/block/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AASxD,OAAO,EAAC,uBAAuB,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAoB,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAY7E,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,GACjD,IAAI,
|
|
1
|
+
{"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAY7E,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,GACjD,IAAI,CAmFN"}
|
|
@@ -30,7 +30,8 @@ export function processConsolidationRequest(state, consolidationRequest) {
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
// If there is too little available consolidation churn limit, consolidation requests are ignored
|
|
33
|
-
|
|
33
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
34
|
+
if (getConsolidationChurnLimit(fork, state.epochCtx) <= MIN_ACTIVATION_BALANCE) {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
const sourceValidator = state.validators.get(sourceIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAC,2BAA2B,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,aAAa,EACb,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,uCAAuC,EAAC,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEhH,oGAAoG;AACpG,MAAM,UAAU,2BAA2B,CACzC,KAAwD,EACxD,oBAAkD,EAC5C;IACN,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,oBAAoB,CAAC;IACzE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAI,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAChE,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACjD,uEAAuE;QACvE,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IAED,iGAAiG;IACjG,IAAI,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAC,2BAA2B,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,aAAa,EACb,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,uCAAuC,EAAC,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAC,0BAA0B,EAAE,2BAA2B,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEhH,oGAAoG;AACpG,MAAM,UAAU,2BAA2B,CACzC,KAAwD,EACxD,oBAAkD,EAC5C;IACN,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,oBAAoB,CAAC;IACzE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAI,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAChE,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACjD,uEAAuE;QACvE,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QACvE,OAAO;IACT,CAAC;IAED,iGAAiG;IACjG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE1C,uCAAuC;IACvC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACrG,MAAM,sBAAsB,GAAG,eAAe,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACvF,IAAI,CAAC,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,kCAAkC,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,6DAA6D;IAC7D,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO;IACT,CAAC;IAED,gDAAgD;IAChD,IAAI,YAAY,GAAG,eAAe,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACzF,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,2BAA2B,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,iDAAiD;IACjD,MAAM,SAAS,GAAG,uCAAuC,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3G,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,eAAe,CAAC,iBAAiB,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC;IAEjG,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QACrE,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAAA,CACxD;AAED;;GAEG;AACH,SAAS,8BAA8B,CACrC,KAAwD,EACxD,oBAAkD,EACzC;IACT,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,GAAG,oBAAoB,CAAC;IACzE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEnE,uBAAuB;IACvB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,6FAA6F;QAC7F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IAC5D,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnF,qCAAqC;IACrC,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,IAAI,eAAe,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACb"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import { BeaconConfig } from "@lodestar/config";
|
|
2
1
|
import { ForkSeq } from "@lodestar/params";
|
|
3
|
-
import { BLSPubkey, Bytes32,
|
|
2
|
+
import { BLSPubkey, Bytes32, UintNum64, electra } from "@lodestar/types";
|
|
4
3
|
import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
|
|
4
|
+
import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
|
|
5
5
|
/**
|
|
6
6
|
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
7
7
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-apply_deposit_for_builder
|
|
8
8
|
*/
|
|
9
9
|
export declare function applyDepositForBuilder(state: CachedBeaconStateGloas, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64, signature: Bytes32, slot: UintNum64): void;
|
|
10
|
-
export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest,
|
|
11
|
-
/**
|
|
12
|
-
* Build a set of pubkeys (hex-encoded) from pending deposits that have valid signatures.
|
|
13
|
-
* This is computed once and passed to each processDepositRequest call to avoid
|
|
14
|
-
* repeatedly iterating state.pendingDeposits.
|
|
15
|
-
*
|
|
16
|
-
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.3/specs/gloas/beacon-chain.md#new-is_pending_validator
|
|
17
|
-
*/
|
|
18
|
-
export declare function getPendingValidatorPubkeys(config: BeaconConfig, state: CachedBeaconStateGloas): Set<PubkeyHex>;
|
|
10
|
+
export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest, pendingDepositsLookup?: PendingDepositsLookup): void;
|
|
19
11
|
//# sourceMappingURL=processDepositRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,OAAO,EAAqC,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAC,qBAAqB,EAAC,MAAM,kCAAkC,CAAC;AAGvE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,SAAS,EACjB,qBAAqB,EAAE,OAAO,EAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,SAAS,GACd,IAAI,CAaN;AAiDD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,qBAAqB,CAAC,EAAE,qBAAqB,GAC5C,IAAI,CAyDN"}
|
|
@@ -3,6 +3,7 @@ import { ssz } from "@lodestar/types";
|
|
|
3
3
|
import { toPubkeyHex } from "@lodestar/utils";
|
|
4
4
|
import { findBuilderIndexByPubkey, isBuilderWithdrawalCredential } from "../util/gloas.js";
|
|
5
5
|
import { computeEpochAtSlot, isValidatorKnown } from "../util/index.js";
|
|
6
|
+
import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
|
|
6
7
|
import { isValidDepositSignature } from "./processDeposit.js";
|
|
7
8
|
/**
|
|
8
9
|
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
@@ -56,40 +57,47 @@ function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount, slot
|
|
|
56
57
|
state.builders.push(newBuilder);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
// TODO GLOAS:
|
|
60
|
-
//
|
|
61
|
-
//
|
|
60
|
+
// TODO GLOAS: the PendingDepositsLookup is currently scoped to a single envelope of
|
|
61
|
+
// deposit-requests. We can track it as ephemeral within EpochCache and transfer to the next block
|
|
62
|
+
// transition to reuse cached signature verifications.
|
|
62
63
|
// See https://github.com/ChainSafe/lodestar/issues/9181
|
|
63
|
-
export function processDepositRequest(fork, state, depositRequest,
|
|
64
|
+
export function processDepositRequest(fork, state, depositRequest, pendingDepositsLookup) {
|
|
64
65
|
const { pubkey, withdrawalCredentials, amount, signature } = depositRequest;
|
|
65
|
-
// Check if this is a builder or validator deposit
|
|
66
66
|
if (fork >= ForkSeq.gloas) {
|
|
67
67
|
const stateGloas = state;
|
|
68
|
-
const
|
|
68
|
+
const lookup = pendingDepositsLookup ?? PendingDepositsLookup.build(stateGloas);
|
|
69
69
|
const pubkeyHex = toPubkeyHex(pubkey);
|
|
70
70
|
const builderIndex = findBuilderIndexByPubkey(stateGloas, pubkey);
|
|
71
71
|
const validatorIndex = state.epochCtx.getValidatorIndex(pubkey);
|
|
72
|
-
// Regardless of the withdrawal credentials prefix, if a builder/validator
|
|
73
|
-
// already exists with this pubkey, apply the deposit to their balance
|
|
74
72
|
const isBuilder = builderIndex !== null;
|
|
75
73
|
const isValidator = isValidatorKnown(state, validatorIndex);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
// Apply builder deposits immediately
|
|
74
|
+
if (isBuilder) {
|
|
75
|
+
// Top up an existing builder regardless of withdrawal credential prefix
|
|
79
76
|
applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature, state.slot);
|
|
80
77
|
return;
|
|
81
78
|
}
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
if (pendingValidatorPubkeysCache &&
|
|
79
|
+
// Only check the (expensive) "pending validator" condition when needed
|
|
80
|
+
if (isBuilderWithdrawalCredential(withdrawalCredentials) &&
|
|
85
81
|
!isValidator &&
|
|
86
|
-
!
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
!lookup.hasPendingValidator(state.config, pubkeyHex)) {
|
|
83
|
+
applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature, state.slot);
|
|
84
|
+
return;
|
|
89
85
|
}
|
|
86
|
+
const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
|
|
87
|
+
pubkey,
|
|
88
|
+
withdrawalCredentials,
|
|
89
|
+
amount,
|
|
90
|
+
signature,
|
|
91
|
+
slot: state.slot,
|
|
92
|
+
});
|
|
93
|
+
// Keep the lookup in sync with state.pendingDeposits so later deposit-requests
|
|
94
|
+
// in the same envelope see this deposit
|
|
95
|
+
lookup.add(pendingDeposit, pubkeyHex);
|
|
96
|
+
state.pendingDeposits.push(pendingDeposit);
|
|
97
|
+
return;
|
|
90
98
|
}
|
|
91
|
-
//
|
|
92
|
-
if (
|
|
99
|
+
// Pre-Gloas (Electra) path
|
|
100
|
+
if (state.depositRequestsStartIndex === UNSET_DEPOSIT_REQUESTS_START_INDEX) {
|
|
93
101
|
state.depositRequestsStartIndex = depositRequest.index;
|
|
94
102
|
}
|
|
95
103
|
// Add validator deposits to the queue
|
|
@@ -102,20 +110,4 @@ export function processDepositRequest(fork, state, depositRequest, pendingValida
|
|
|
102
110
|
});
|
|
103
111
|
state.pendingDeposits.push(pendingDeposit);
|
|
104
112
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Build a set of pubkeys (hex-encoded) from pending deposits that have valid signatures.
|
|
107
|
-
* This is computed once and passed to each processDepositRequest call to avoid
|
|
108
|
-
* repeatedly iterating state.pendingDeposits.
|
|
109
|
-
*
|
|
110
|
-
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.3/specs/gloas/beacon-chain.md#new-is_pending_validator
|
|
111
|
-
*/
|
|
112
|
-
export function getPendingValidatorPubkeys(config, state) {
|
|
113
|
-
const result = new Set();
|
|
114
|
-
for (const pendingDeposit of state.pendingDeposits.getAllReadonly()) {
|
|
115
|
-
if (isValidDepositSignature(config, pendingDeposit.pubkey, pendingDeposit.withdrawalCredentials, pendingDeposit.amount, pendingDeposit.signature)) {
|
|
116
|
-
result.add(toPubkeyHex(pendingDeposit.pubkey));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return result;
|
|
120
|
-
}
|
|
121
113
|
//# sourceMappingURL=processDepositRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ForkPostGloas } from "@lodestar/params";
|
|
2
|
+
import { BeaconBlock, electra } from "@lodestar/types";
|
|
3
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Process parent execution payload effects as the first step of processBlock.
|
|
6
|
+
*
|
|
7
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-process_parent_execution_payload
|
|
8
|
+
*/
|
|
9
|
+
export declare function processParentExecutionPayload(state: CachedBeaconStateGloas, block: BeaconBlock<ForkPostGloas>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Process the parent's execution requests, queue the builder payment, update payload availability,
|
|
12
|
+
* and update the latest block hash.
|
|
13
|
+
*
|
|
14
|
+
* Called from processParentExecutionPayload during block processing, and from the validator during
|
|
15
|
+
* block production before computing withdrawals.
|
|
16
|
+
*
|
|
17
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-apply_parent_execution_payload
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyParentExecutionPayload(state: CachedBeaconStateGloas, requests: electra.ExecutionRequests): void;
|
|
20
|
+
//# sourceMappingURL=processParentExecutionPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processParentExecutionPayload.d.ts","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAOnD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqBpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CA4CpH"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT } from "@lodestar/params";
|
|
2
|
+
import { ssz } from "@lodestar/types";
|
|
3
|
+
import { byteArrayEquals, toRootHex } from "@lodestar/utils";
|
|
4
|
+
import { computeEpochAtSlot } from "../util/epoch.js";
|
|
5
|
+
import { PendingDepositsLookup } from "../util/pendingDepositsLookup.js";
|
|
6
|
+
import { processConsolidationRequest } from "./processConsolidationRequest.js";
|
|
7
|
+
import { processDepositRequest } from "./processDepositRequest.js";
|
|
8
|
+
import { processWithdrawalRequest } from "./processWithdrawalRequest.js";
|
|
9
|
+
/**
|
|
10
|
+
* Process parent execution payload effects as the first step of processBlock.
|
|
11
|
+
*
|
|
12
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-process_parent_execution_payload
|
|
13
|
+
*/
|
|
14
|
+
export function processParentExecutionPayload(state, block) {
|
|
15
|
+
const bid = block.body.signedExecutionPayloadBid.message;
|
|
16
|
+
const parentBid = state.latestExecutionPayloadBid;
|
|
17
|
+
const requests = block.body.parentExecutionRequests;
|
|
18
|
+
const isParentBlockFull = byteArrayEquals(bid.parentBlockHash, parentBid.blockHash);
|
|
19
|
+
if (!isParentBlockFull) {
|
|
20
|
+
// Parent was EMPTY -- no execution requests expected
|
|
21
|
+
assertEmptyExecutionRequests(requests);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Parent was FULL -- verify the bid commitment and apply the payload
|
|
25
|
+
const requestsRoot = ssz.electra.ExecutionRequests.hashTreeRoot(requests);
|
|
26
|
+
if (!byteArrayEquals(requestsRoot, parentBid.executionRequestsRoot)) {
|
|
27
|
+
throw new Error(`Parent execution requests root mismatch actual=${toRootHex(requestsRoot)} expected=${toRootHex(parentBid.executionRequestsRoot)}`);
|
|
28
|
+
}
|
|
29
|
+
applyParentExecutionPayload(state, requests);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Process the parent's execution requests, queue the builder payment, update payload availability,
|
|
33
|
+
* and update the latest block hash.
|
|
34
|
+
*
|
|
35
|
+
* Called from processParentExecutionPayload during block processing, and from the validator during
|
|
36
|
+
* block production before computing withdrawals.
|
|
37
|
+
*
|
|
38
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-apply_parent_execution_payload
|
|
39
|
+
*/
|
|
40
|
+
export function applyParentExecutionPayload(state, requests) {
|
|
41
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
42
|
+
const parentBid = state.latestExecutionPayloadBid;
|
|
43
|
+
const parentSlot = parentBid.slot;
|
|
44
|
+
const parentEpoch = computeEpochAtSlot(parentSlot);
|
|
45
|
+
const currentEpoch = computeEpochAtSlot(state.slot);
|
|
46
|
+
// Process execution requests from parent's payload. The execution
|
|
47
|
+
// requests are processed at state.slot (child's slot), not the parent's slot.
|
|
48
|
+
if (requests.deposits.length > 0) {
|
|
49
|
+
const pendingDepositsLookup = PendingDepositsLookup.build(state);
|
|
50
|
+
for (const deposit of requests.deposits) {
|
|
51
|
+
processDepositRequest(fork, state, deposit, pendingDepositsLookup);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (const withdrawal of requests.withdrawals) {
|
|
55
|
+
processWithdrawalRequest(fork, state, withdrawal);
|
|
56
|
+
}
|
|
57
|
+
for (const consolidation of requests.consolidations) {
|
|
58
|
+
processConsolidationRequest(state, consolidation);
|
|
59
|
+
}
|
|
60
|
+
// Settle the builder payment
|
|
61
|
+
if (parentEpoch === currentEpoch) {
|
|
62
|
+
settleBuilderPayment(state, SLOTS_PER_EPOCH + (parentSlot % SLOTS_PER_EPOCH));
|
|
63
|
+
}
|
|
64
|
+
else if (parentEpoch === currentEpoch - 1) {
|
|
65
|
+
settleBuilderPayment(state, parentSlot % SLOTS_PER_EPOCH);
|
|
66
|
+
}
|
|
67
|
+
else if (parentBid.value > 0) {
|
|
68
|
+
// Parent is older than the previous epoch, its payment entry has been evicted from
|
|
69
|
+
// builder_pending_payments. Append the withdrawal directly.
|
|
70
|
+
state.builderPendingWithdrawals.push(ssz.gloas.BuilderPendingWithdrawal.toViewDU({
|
|
71
|
+
feeRecipient: parentBid.feeRecipient,
|
|
72
|
+
amount: parentBid.value,
|
|
73
|
+
builderIndex: parentBid.builderIndex,
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
// Update parent payload availability and latest block hash
|
|
77
|
+
state.executionPayloadAvailability.set(parentSlot % SLOTS_PER_HISTORICAL_ROOT, true);
|
|
78
|
+
state.latestBlockHash = parentBid.blockHash;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Settle a builder payment at the given index: move its withdrawal (if any) to the
|
|
82
|
+
* pending withdrawals list and clear the payment slot.
|
|
83
|
+
*
|
|
84
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-settle_builder_payment
|
|
85
|
+
*/
|
|
86
|
+
function settleBuilderPayment(state, paymentIndex) {
|
|
87
|
+
if (paymentIndex >= state.builderPendingPayments.length) {
|
|
88
|
+
throw new Error(`Invalid builder payment index paymentIndex=${paymentIndex} limit=${state.builderPendingPayments.length}`);
|
|
89
|
+
}
|
|
90
|
+
const payment = state.builderPendingPayments.get(paymentIndex).clone();
|
|
91
|
+
if (payment.withdrawal.amount > 0) {
|
|
92
|
+
state.builderPendingWithdrawals.push(payment.withdrawal);
|
|
93
|
+
}
|
|
94
|
+
state.builderPendingPayments.set(paymentIndex, ssz.gloas.BuilderPendingPayment.defaultViewDU());
|
|
95
|
+
}
|
|
96
|
+
function assertEmptyExecutionRequests(requests) {
|
|
97
|
+
if (requests.deposits.length !== 0 || requests.withdrawals.length !== 0 || requests.consolidations.length !== 0) {
|
|
98
|
+
throw new Error("Parent execution requests must be empty when parent block is EMPTY");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=processParentExecutionPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processParentExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA+B,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"processWithdrawals.d.ts","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA+B,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAevG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,EACnF,OAAO,CAAC,EAAE,OAAO,CAAC,6BAA6B,GAC9C,IAAI,CAqGN;AAsRD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,GAAG,sBAAsB,GAClF;IACD,mBAAmB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,gCAAgC,EAAE,MAAM,CAAC;IACzC,gCAAgC,EAAE,MAAM,CAAC;IACzC,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,MAAM,CAAC;CACtC,CAuFA"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { FAR_FUTURE_EPOCH, ForkSeq, MAX_BUILDERS_PER_WITHDRAWALS_SWEEP, MAX_EFFECTIVE_BALANCE, MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP, MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP, MAX_WITHDRAWALS_PER_PAYLOAD, MIN_ACTIVATION_BALANCE, } from "@lodestar/params";
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
3
|
import { byteArrayEquals, toRootHex } from "@lodestar/utils";
|
|
4
|
-
import { convertBuilderIndexToValidatorIndex, convertValidatorIndexToBuilderIndex, isBuilderIndex,
|
|
4
|
+
import { convertBuilderIndexToValidatorIndex, convertValidatorIndexToBuilderIndex, isBuilderIndex, } from "../util/gloas.js";
|
|
5
5
|
import { decreaseBalance, getMaxEffectiveBalance, hasEth1WithdrawalCredential, hasExecutionWithdrawalCredential, isCapellaPayloadHeader, isPartiallyWithdrawableValidator, } from "../util/index.js";
|
|
6
6
|
export function processWithdrawals(fork, state, payload) {
|
|
7
7
|
// Return early if the parent block is empty
|
|
8
|
-
if (fork >= ForkSeq.gloas
|
|
9
|
-
|
|
8
|
+
if (fork >= ForkSeq.gloas) {
|
|
9
|
+
const stateGloas = state;
|
|
10
|
+
const isParentBlockEmpty = !byteArrayEquals(stateGloas.latestBlockHash, stateGloas.latestExecutionPayloadBid.blockHash);
|
|
11
|
+
if (isParentBlockEmpty) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
10
14
|
}
|
|
11
15
|
// processedBuilderWithdrawalsCount is withdrawals coming from builder payment since gloas (EIP-7732)
|
|
12
16
|
// processedPartialWithdrawalsCount is withdrawals coming from EL since electra (EIP-7002)
|
|
@@ -14,7 +18,9 @@ export function processWithdrawals(fork, state, payload) {
|
|
|
14
18
|
// processedValidatorSweepCount is withdrawals coming from validator sweep
|
|
15
19
|
const { expectedWithdrawals, processedBuilderWithdrawalsCount, processedPartialWithdrawalsCount, processedBuildersSweepCount, } = getExpectedWithdrawals(fork, state);
|
|
16
20
|
const numWithdrawals = expectedWithdrawals.length;
|
|
17
|
-
//
|
|
21
|
+
// Pre-gloas verifies the payload's withdrawals against expectedWithdrawals here.
|
|
22
|
+
// Post-gloas, the payload arrives later as an envelope and that consistency check
|
|
23
|
+
// happens in verifyExecutionPayloadEnvelope against state.payloadExpectedWithdrawals.
|
|
18
24
|
if (fork < ForkSeq.gloas) {
|
|
19
25
|
if (payload === undefined) {
|
|
20
26
|
throw Error("payload is required for pre-gloas processWithdrawals");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
|
package/lib/cache/epochCache.js
CHANGED
|
@@ -4,7 +4,7 @@ import { LodestarError } from "@lodestar/utils";
|
|
|
4
4
|
import { getTotalSlashingsByIncrement } from "../epoch/processSlashings.js";
|
|
5
5
|
import { calculateDecisionRoot, calculateShufflingDecisionRoot, computeEpochShuffling, } from "../util/epochShuffling.js";
|
|
6
6
|
import { getPtcWindowEpochCacheData } from "../util/gloas.js";
|
|
7
|
-
import { computeActivationExitEpoch, computeEpochAtSlot, computeProposers, computeSyncPeriodAtEpoch,
|
|
7
|
+
import { computeActivationExitEpoch, computeEpochAtSlot, computeProposers, computeSyncPeriodAtEpoch, getChurnLimit, getSeed, getValidatorActivationChurnLimit, isActiveValidator, isAggregatorFromCommitteeLength, } from "../util/index.js";
|
|
8
8
|
import { calculateCommitteeAssignments, getAttestingIndices, getBeaconCommittees, getIndexedAttestation, } from "../util/shuffling.js";
|
|
9
9
|
import { computeBaseRewardPerIncrement, computeSyncParticipantReward } from "../util/syncCommittee.js";
|
|
10
10
|
import { sumTargetUnslashedBalanceIncrements } from "../util/targetUnslashedBalance.js";
|
|
@@ -335,7 +335,7 @@ export class EpochCache {
|
|
|
335
335
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
336
336
|
// transition and the result is valid until the end of the next epoch transition
|
|
337
337
|
const churnLimit = getChurnLimit(config, currentShuffling.activeIndices.length);
|
|
338
|
-
const activationChurnLimit =
|
|
338
|
+
const activationChurnLimit = getValidatorActivationChurnLimit(config, config.getForkSeq(state.slot), currentShuffling.activeIndices.length);
|
|
339
339
|
if (exitQueueChurn >= churnLimit) {
|
|
340
340
|
exitQueueEpoch += 1;
|
|
341
341
|
exitQueueChurn = 0;
|
|
@@ -488,7 +488,7 @@ export class EpochCache {
|
|
|
488
488
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
489
489
|
// transition and the result is valid until the end of the next epoch transition
|
|
490
490
|
this.churnLimit = getChurnLimit(this.config, this.currentShuffling.activeIndices.length);
|
|
491
|
-
this.activationChurnLimit =
|
|
491
|
+
this.activationChurnLimit = getValidatorActivationChurnLimit(this.config, this.config.getForkSeq(state.slot), this.currentShuffling.activeIndices.length);
|
|
492
492
|
// Maybe advance exitQueueEpoch at the end of the epoch if there haven't been any exists for a while
|
|
493
493
|
const exitQueueEpoch = computeActivationExitEpoch(upcomingEpoch);
|
|
494
494
|
if (exitQueueEpoch > this.exitQueueEpoch) {
|