@lodestar/state-transition 1.40.0 → 1.41.0-dev.0087e7a664
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/externalData.d.ts +2 -1
- package/lib/block/externalData.d.ts.map +1 -1
- package/lib/block/externalData.js +2 -0
- package/lib/block/externalData.js.map +1 -1
- package/lib/block/index.d.ts +3 -3
- package/lib/block/isValidIndexedAttestation.d.ts +3 -3
- package/lib/block/isValidIndexedAttestation.d.ts.map +1 -1
- package/lib/block/isValidIndexedAttestation.js +4 -4
- package/lib/block/isValidIndexedAttestation.js.map +1 -1
- package/lib/block/isValidIndexedPayloadAttestation.js +1 -1
- package/lib/block/isValidIndexedPayloadAttestation.js.map +1 -1
- package/lib/block/processAttestationPhase0.js +1 -1
- package/lib/block/processAttestationPhase0.js.map +1 -1
- package/lib/block/processAttestationsAltair.js +1 -1
- package/lib/block/processAttestationsAltair.js.map +1 -1
- package/lib/block/processAttesterSlashing.d.ts +2 -2
- package/lib/block/processAttesterSlashing.d.ts.map +1 -1
- package/lib/block/processAttesterSlashing.js +3 -3
- package/lib/block/processAttesterSlashing.js.map +1 -1
- package/lib/block/processDepositRequest.d.ts +1 -1
- package/lib/block/processDepositRequest.d.ts.map +1 -1
- package/lib/block/processDepositRequest.js +6 -5
- package/lib/block/processDepositRequest.js.map +1 -1
- package/lib/block/processExecutionPayloadBid.d.ts +1 -1
- package/lib/block/processExecutionPayloadBid.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadBid.js +5 -0
- package/lib/block/processExecutionPayloadBid.js.map +1 -1
- package/lib/block/processExecutionPayloadEnvelope.d.ts +5 -2
- package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadEnvelope.js +25 -24
- package/lib/block/processExecutionPayloadEnvelope.js.map +1 -1
- package/lib/block/processPayloadAttestation.d.ts +1 -1
- package/lib/block/processProposerSlashing.d.ts +2 -2
- package/lib/block/processProposerSlashing.d.ts.map +1 -1
- package/lib/block/processProposerSlashing.js +3 -3
- package/lib/block/processProposerSlashing.js.map +1 -1
- package/lib/block/processRandao.js +1 -1
- package/lib/block/processRandao.js.map +1 -1
- package/lib/block/processSyncCommittee.js +1 -1
- package/lib/block/processSyncCommittee.js.map +1 -1
- package/lib/block/processVoluntaryExit.js +1 -1
- package/lib/block/processVoluntaryExit.js.map +1 -1
- package/lib/block/processWithdrawalRequest.js +2 -2
- package/lib/block/processWithdrawalRequest.js.map +1 -1
- package/lib/block/processWithdrawals.d.ts.map +1 -1
- package/lib/block/processWithdrawals.js +9 -1
- package/lib/block/processWithdrawals.js.map +1 -1
- package/lib/cache/epochCache.d.ts +11 -18
- package/lib/cache/epochCache.d.ts.map +1 -1
- package/lib/cache/epochCache.js +41 -40
- package/lib/cache/epochCache.js.map +1 -1
- package/lib/cache/pubkeyCache.d.ts +21 -6
- package/lib/cache/pubkeyCache.d.ts.map +1 -1
- package/lib/cache/pubkeyCache.js +39 -14
- package/lib/cache/pubkeyCache.js.map +1 -1
- package/lib/cache/stateCache.d.ts +1 -1
- package/lib/cache/stateCache.d.ts.map +1 -1
- package/lib/cache/stateCache.js +3 -7
- package/lib/cache/stateCache.js.map +1 -1
- package/lib/cache/syncCommitteeCache.d.ts +3 -2
- package/lib/cache/syncCommitteeCache.d.ts.map +1 -1
- package/lib/cache/syncCommitteeCache.js +4 -4
- package/lib/cache/syncCommitteeCache.js.map +1 -1
- package/lib/epoch/index.d.ts +1 -1
- package/lib/epoch/processBuilderPendingPayments.d.ts +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/lightClient/proofs.d.ts +10 -0
- package/lib/lightClient/proofs.d.ts.map +1 -0
- package/lib/lightClient/proofs.js +63 -0
- package/lib/lightClient/proofs.js.map +1 -0
- package/lib/lightClient/types.d.ts +34 -0
- package/lib/lightClient/types.d.ts.map +1 -0
- package/lib/lightClient/types.js +2 -0
- package/lib/lightClient/types.js.map +1 -0
- package/lib/rewards/attestationsRewards.d.ts +2 -2
- package/lib/rewards/attestationsRewards.d.ts.map +1 -1
- package/lib/rewards/attestationsRewards.js +4 -4
- package/lib/rewards/attestationsRewards.js.map +1 -1
- package/lib/rewards/syncCommitteeRewards.d.ts +2 -2
- package/lib/rewards/syncCommitteeRewards.d.ts.map +1 -1
- package/lib/rewards/syncCommitteeRewards.js +5 -2
- package/lib/rewards/syncCommitteeRewards.js.map +1 -1
- package/lib/signatureSets/indexedPayloadAttestation.d.ts +3 -4
- package/lib/signatureSets/indexedPayloadAttestation.d.ts.map +1 -1
- package/lib/signatureSets/indexedPayloadAttestation.js +4 -4
- package/lib/signatureSets/indexedPayloadAttestation.js.map +1 -1
- package/lib/signatureSets/proposer.d.ts +2 -2
- package/lib/signatureSets/proposer.d.ts.map +1 -1
- package/lib/signatureSets/proposer.js +2 -2
- package/lib/signatureSets/proposer.js.map +1 -1
- package/lib/signatureSets/randao.d.ts +2 -2
- package/lib/signatureSets/randao.d.ts.map +1 -1
- package/lib/signatureSets/randao.js +2 -2
- package/lib/signatureSets/randao.js.map +1 -1
- package/lib/signatureSets/voluntaryExits.d.ts +2 -2
- package/lib/signatureSets/voluntaryExits.d.ts.map +1 -1
- package/lib/signatureSets/voluntaryExits.js +2 -2
- package/lib/signatureSets/voluntaryExits.js.map +1 -1
- package/lib/slot/upgradeStateToGloas.d.ts.map +1 -1
- package/lib/slot/upgradeStateToGloas.js +50 -0
- package/lib/slot/upgradeStateToGloas.js.map +1 -1
- package/lib/stateTransition.d.ts +2 -1
- package/lib/stateTransition.d.ts.map +1 -1
- package/lib/stateTransition.js +2 -1
- package/lib/stateTransition.js.map +1 -1
- package/lib/stateView/beaconStateView.d.ts +144 -0
- package/lib/stateView/beaconStateView.d.ts.map +1 -0
- package/lib/stateView/beaconStateView.js +496 -0
- package/lib/stateView/beaconStateView.js.map +1 -0
- package/lib/stateView/index.d.ts +3 -0
- package/lib/stateView/index.d.ts.map +1 -0
- package/lib/stateView/index.js +3 -0
- package/lib/stateView/index.js.map +1 -0
- package/lib/stateView/interface.d.ts +118 -0
- package/lib/stateView/interface.d.ts.map +1 -0
- package/lib/stateView/interface.js +2 -0
- package/lib/stateView/interface.js.map +1 -0
- package/lib/testUtils/cache.d.ts +2 -0
- package/lib/testUtils/cache.d.ts.map +1 -0
- package/lib/testUtils/cache.js +7 -0
- package/lib/testUtils/cache.js.map +1 -0
- package/lib/testUtils/index.d.ts +6 -0
- package/lib/testUtils/index.d.ts.map +1 -0
- package/lib/testUtils/index.js +6 -0
- package/lib/testUtils/index.js.map +1 -0
- package/lib/testUtils/infura.d.ts +3 -0
- package/lib/testUtils/infura.d.ts.map +1 -0
- package/lib/testUtils/infura.js +8 -0
- package/lib/testUtils/infura.js.map +1 -0
- package/lib/testUtils/interop.d.ts +2 -0
- package/lib/testUtils/interop.d.ts.map +1 -0
- package/lib/testUtils/interop.js +24 -0
- package/lib/testUtils/interop.js.map +1 -0
- package/lib/testUtils/params.d.ts +18 -0
- package/lib/testUtils/params.d.ts.map +1 -0
- package/lib/testUtils/params.js +20 -0
- package/lib/testUtils/params.js.map +1 -0
- package/lib/testUtils/state.d.ts +20 -0
- package/lib/testUtils/state.d.ts.map +1 -0
- package/lib/testUtils/state.js +78 -0
- package/lib/testUtils/state.js.map +1 -0
- package/lib/testUtils/testFileCache.d.ts +17 -0
- package/lib/testUtils/testFileCache.d.ts.map +1 -0
- package/lib/testUtils/testFileCache.js +96 -0
- package/lib/testUtils/testFileCache.js.map +1 -0
- package/lib/testUtils/util.d.ts +50 -0
- package/lib/testUtils/util.d.ts.map +1 -0
- package/lib/testUtils/util.js +329 -0
- package/lib/testUtils/util.js.map +1 -0
- package/lib/util/gloas.d.ts.map +1 -1
- package/lib/util/gloas.js +10 -3
- package/lib/util/gloas.js.map +1 -1
- package/lib/util/seed.d.ts +20 -12
- package/lib/util/seed.d.ts.map +1 -1
- package/lib/util/seed.js +80 -72
- package/lib/util/seed.js.map +1 -1
- package/lib/util/signatureSets.d.ts +7 -7
- package/lib/util/signatureSets.d.ts.map +1 -1
- package/lib/util/signatureSets.js +18 -12
- package/lib/util/signatureSets.js.map +1 -1
- package/lib/util/weakSubjectivity.js +1 -1
- package/lib/util/weakSubjectivity.js.map +1 -1
- package/package.json +12 -7
- package/src/block/externalData.ts +2 -0
- package/src/block/index.ts +3 -3
- package/src/block/isValidIndexedAttestation.ts +5 -5
- package/src/block/isValidIndexedPayloadAttestation.ts +4 -4
- package/src/block/processAttestationPhase0.ts +1 -1
- package/src/block/processAttestationsAltair.ts +2 -2
- package/src/block/processAttesterSlashing.ts +4 -4
- package/src/block/processDepositRequest.ts +8 -5
- package/src/block/processExecutionPayloadBid.ts +12 -4
- package/src/block/processExecutionPayloadEnvelope.ts +40 -37
- package/src/block/processOperations.ts +1 -1
- package/src/block/processPayloadAttestation.ts +2 -2
- package/src/block/processProposerSlashing.ts +4 -4
- package/src/block/processRandao.ts +1 -1
- package/src/block/processSyncCommittee.ts +1 -1
- package/src/block/processVoluntaryExit.ts +1 -1
- package/src/block/processWithdrawalRequest.ts +2 -2
- package/src/block/processWithdrawals.ts +11 -2
- package/src/cache/epochCache.ts +62 -54
- package/src/cache/pubkeyCache.ts +62 -21
- package/src/cache/stateCache.ts +4 -8
- package/src/cache/syncCommitteeCache.ts +4 -5
- package/src/epoch/index.ts +1 -1
- package/src/epoch/processBuilderPendingPayments.ts +2 -2
- package/src/index.ts +3 -1
- package/src/lightClient/proofs.ts +83 -0
- package/src/lightClient/types.ts +33 -0
- package/src/rewards/attestationsRewards.ts +5 -5
- package/src/rewards/syncCommitteeRewards.ts +6 -5
- package/src/signatureSets/indexedPayloadAttestation.ts +4 -6
- package/src/signatureSets/proposer.ts +3 -3
- package/src/signatureSets/randao.ts +3 -7
- package/src/signatureSets/voluntaryExits.ts +3 -3
- package/src/slot/upgradeStateToGloas.ts +74 -0
- package/src/stateTransition.ts +2 -1
- package/src/stateView/beaconStateView.ts +744 -0
- package/src/stateView/index.ts +2 -0
- package/src/stateView/interface.ts +196 -0
- package/src/testUtils/cache.ts +8 -0
- package/src/testUtils/index.ts +5 -0
- package/src/testUtils/infura.ts +10 -0
- package/src/testUtils/interop.ts +29 -0
- package/src/testUtils/params.ts +23 -0
- package/src/testUtils/state.ts +110 -0
- package/src/testUtils/testFileCache.ts +127 -0
- package/src/testUtils/util.ts +429 -0
- package/src/util/gloas.ts +11 -3
- package/src/util/seed.ts +106 -89
- package/src/util/signatureSets.ts +23 -17
- package/src/util/weakSubjectivity.ts +1 -1
|
@@ -15,7 +15,8 @@ export declare enum ExecutionPayloadStatus {
|
|
|
15
15
|
export declare enum DataAvailabilityStatus {
|
|
16
16
|
PreData = "PreData",
|
|
17
17
|
OutOfRange = "OutOfRange",
|
|
18
|
-
Available = "Available"
|
|
18
|
+
Available = "Available",
|
|
19
|
+
NotRequired = "NotRequired"
|
|
19
20
|
}
|
|
20
21
|
export interface BlockExternalData {
|
|
21
22
|
executionPayloadStatus: ExecutionPayloadStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalData.d.ts","sourceRoot":"","sources":["../../src/block/externalData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,OAAO,YAAY;IAEnB,UAAU,eAAe;IACzB,SAAS,cAAc;
|
|
1
|
+
{"version":3,"file":"externalData.d.ts","sourceRoot":"","sources":["../../src/block/externalData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,OAAO,YAAY;IAEnB,UAAU,eAAe;IACzB,SAAS,cAAc;IAEvB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,sBAAsB,EAAE,sBAAsB,CAAC;CAChD"}
|
|
@@ -19,5 +19,7 @@ export var DataAvailabilityStatus;
|
|
|
19
19
|
/* validator activities can't be performed on out of range data */
|
|
20
20
|
DataAvailabilityStatus["OutOfRange"] = "OutOfRange";
|
|
21
21
|
DataAvailabilityStatus["Available"] = "Available";
|
|
22
|
+
/* Gloas: beacon blocks have no DA requirement, execution payload is separate */
|
|
23
|
+
DataAvailabilityStatus["NotRequired"] = "NotRequired";
|
|
22
24
|
})(DataAvailabilityStatus || (DataAvailabilityStatus = {}));
|
|
23
25
|
//# sourceMappingURL=externalData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalData.js","sourceRoot":"","sources":["../../src/block/externalData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,6CAAmB,CAAA;IACnB,yCAAe,CAAA;AACjB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"externalData.js","sourceRoot":"","sources":["../../src/block/externalData.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,6CAAmB,CAAA;IACnB,yCAAe,CAAA;AACjB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,MAAM,CAAN,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,kEAAkE;IAClE,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,gFAAgF;IAChF,qDAA2B,CAAA;AAC7B,CAAC,EAPW,sBAAsB,KAAtB,sBAAsB,QAOjC"}
|
package/lib/block/index.d.ts
CHANGED
|
@@ -6,9 +6,9 @@ import { BlockExternalData } from "./externalData.js";
|
|
|
6
6
|
import { processBlockHeader } from "./processBlockHeader.js";
|
|
7
7
|
import { processEth1Data } from "./processEth1Data.js";
|
|
8
8
|
import { processExecutionPayload } from "./processExecutionPayload.js";
|
|
9
|
-
import { processExecutionPayloadBid } from "./processExecutionPayloadBid.
|
|
10
|
-
import { processExecutionPayloadEnvelope } from "./processExecutionPayloadEnvelope.
|
|
11
|
-
import { processPayloadAttestation } from "./processPayloadAttestation.
|
|
9
|
+
import { processExecutionPayloadBid } from "./processExecutionPayloadBid.js";
|
|
10
|
+
import { processExecutionPayloadEnvelope } from "./processExecutionPayloadEnvelope.js";
|
|
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";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BeaconConfig } from "@lodestar/config";
|
|
2
2
|
import { IndexedAttestation, IndexedAttestationBigint, Slot } from "@lodestar/types";
|
|
3
|
-
import {
|
|
3
|
+
import { PubkeyCache } from "../cache/pubkeyCache.js";
|
|
4
4
|
/**
|
|
5
5
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
6
6
|
*/
|
|
7
|
-
export declare function isValidIndexedAttestation(config: BeaconConfig,
|
|
8
|
-
export declare function isValidIndexedAttestationBigint(config: BeaconConfig,
|
|
7
|
+
export declare function isValidIndexedAttestation(config: BeaconConfig, pubkeyCache: PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestation, verifySignature: boolean): boolean;
|
|
8
|
+
export declare function isValidIndexedAttestationBigint(config: BeaconConfig, pubkeyCache: PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestationBigint, verifySignature: boolean): boolean;
|
|
9
9
|
/**
|
|
10
10
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
11
11
|
*/
|
|
@@ -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,
|
|
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,CA0BT"}
|
|
@@ -4,21 +4,21 @@ import { verifySignatureSet } from "../util/index.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
6
6
|
*/
|
|
7
|
-
export function isValidIndexedAttestation(config,
|
|
7
|
+
export function isValidIndexedAttestation(config, pubkeyCache, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
|
|
8
8
|
if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
|
|
9
9
|
return false;
|
|
10
10
|
}
|
|
11
11
|
if (verifySignature) {
|
|
12
|
-
return verifySignatureSet(getIndexedAttestationSignatureSet(config, stateSlot, indexedAttestation),
|
|
12
|
+
return verifySignatureSet(getIndexedAttestationSignatureSet(config, stateSlot, indexedAttestation), pubkeyCache);
|
|
13
13
|
}
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
16
|
-
export function isValidIndexedAttestationBigint(config,
|
|
16
|
+
export function isValidIndexedAttestationBigint(config, pubkeyCache, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
|
|
17
17
|
if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
if (verifySignature) {
|
|
21
|
-
return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config, stateSlot, indexedAttestation),
|
|
21
|
+
return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config, stateSlot, indexedAttestation), pubkeyCache);
|
|
22
22
|
}
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
@@ -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,
|
|
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;IAExB,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;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,kBAA4C,EAC5C,eAAwB;IAExB,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;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,SAAe,EACf,aAAqB,EACrB,OAAiB;IAEjB,+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,yFAAyF;IACzF,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -7,7 +7,7 @@ export function isValidIndexedPayloadAttestation(state, indexedPayloadAttestatio
|
|
|
7
7
|
return false;
|
|
8
8
|
}
|
|
9
9
|
if (verifySignature) {
|
|
10
|
-
return verifySignatureSet(getIndexedPayloadAttestationSignatureSet(state, indexedPayloadAttestation), state.epochCtx.
|
|
10
|
+
return verifySignatureSet(getIndexedPayloadAttestationSignatureSet(state.config, indexedPayloadAttestation), state.epochCtx.pubkeyCache);
|
|
11
11
|
}
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedPayloadAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wCAAwC,EAAC,MAAM,2BAA2B,CAAC;AAEnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,gCAAgC,CAC9C,KAA6B,EAC7B,yBAA0D,EAC1D,eAAwB;IAExB,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CACvB,wCAAwC,CAAC,KAAK,EAAE,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"isValidIndexedPayloadAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wCAAwC,EAAC,MAAM,2BAA2B,CAAC;AAEnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,gCAAgC,CAC9C,KAA6B,EAC7B,yBAA0D,EAC1D,eAAwB;IAExB,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CACvB,wCAAwC,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjF,KAAK,CAAC,QAAQ,CAAC,WAAW,CAC3B,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -33,7 +33,7 @@ export function processAttestationPhase0(state, attestation, verifySignature = t
|
|
|
33
33
|
}
|
|
34
34
|
state.previousEpochAttestations.push(pendingAttestation);
|
|
35
35
|
}
|
|
36
|
-
if (!isValidIndexedAttestation(state.config, epochCtx.
|
|
36
|
+
if (!isValidIndexedAttestation(state.config, epochCtx.pubkeyCache, state.slot, state.validators.length, epochCtx.getIndexedAttestation(ForkSeq.phase0, attestation), verifySignature)) {
|
|
37
37
|
throw new Error("Attestation is not valid");
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,+BAA+B,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAqC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA8B,EAC9B,WAA+B,EAC/B,eAAe,GAAG,IAAI;IAEtB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAChE,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,WAAW,CAAC,eAAe;QAC5C,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI;QAChC,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CACb,0EAA0E,eAAe,CACvF,IAAI,CAAC,MAAM,CACZ,+BAA+B,eAAe,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,2EAA2E,eAAe,CACxF,IAAI,CAAC,MAAM,CACZ,gCAAgC,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAED,IACE,CAAC,yBAAyB,CACxB,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
|
|
|
32
32
|
// we can verify only that and nothing else.
|
|
33
33
|
if (verifySignature) {
|
|
34
34
|
const sigSet = getAttestationWithIndicesSignatureSet(state.config, state.slot, attestation, attestingIndices);
|
|
35
|
-
if (!verifySignatureSet(sigSet, state.epochCtx.
|
|
35
|
+
if (!verifySignatureSet(sigSet, state.epochCtx.pubkeyCache)) {
|
|
36
36
|
throw new Error("Attestation signature is not valid");
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,+BAA+B,EAC/B,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,eAAe,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAC,qCAAqC,EAAC,MAAM,wCAAwC,CAAC;AAE7F,OAAO,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAEnG,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,GAAG,eAAe,CAAC,GAAG,kBAAkB,CAAC,GAAG,eAAe,CAAC;AAElH,iHAAiH;AACjH,MAAM,aAAa,GAAG,CAAC,IAAI,wBAAwB,CAAC;AACpD,MAAM,aAAa,GAAG,CAAC,IAAI,wBAAwB,CAAC;AACpD,MAAM,WAAW,GAAG,CAAC,IAAI,sBAAsB,CAAC;AAChD,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEtD,MAAM,UAAU,yBAAyB,CACvC,IAAa,EACb,KAAuD,EACvD,YAA2B,EAC3B,eAAe,GAAG,IAAI,EACtB,OAA6C;IAE7C,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,MAAM,EAAC,0BAA0B,EAAC,GAAG,QAAQ,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEpC,oFAAoF;IACpF,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,gCAAgC,GAAG,CAAC,CAAC;IAEzC,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAExD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE9C,6EAA6E;QAC7E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEzE,mGAAmG;QACnG,yGAAyG;QACzG,4CAA4C;QAC5C,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,qCAAqC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC9G,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BeaconConfig } from "@lodestar/config";
|
|
2
2
|
import { ForkSeq } from "@lodestar/params";
|
|
3
3
|
import { AttesterSlashing, Slot } from "@lodestar/types";
|
|
4
|
-
import {
|
|
4
|
+
import { PubkeyCache } from "../cache/pubkeyCache.js";
|
|
5
5
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
6
6
|
/**
|
|
7
7
|
* Process an AttesterSlashing operation. Initiates the exit of a validator, decreases the balance of the slashed
|
|
@@ -10,5 +10,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
|
|
|
10
10
|
* PERF: Work depends on number of AttesterSlashing per block. On regular networks the average is 0 / block.
|
|
11
11
|
*/
|
|
12
12
|
export declare function processAttesterSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
13
|
-
export declare function assertValidAttesterSlashing(config: BeaconConfig,
|
|
13
|
+
export declare function assertValidAttesterSlashing(config: BeaconConfig, pubkeyCache: PubkeyCache, stateSlot: Slot, validatorsLen: number, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
14
14
|
//# sourceMappingURL=processAttesterSlashing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttesterSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"processAttesterSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAKtD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CA0BN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACtB,IAAI,CAkBN"}
|
|
@@ -9,7 +9,7 @@ import { slashValidator } from "./slashValidator.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export function processAttesterSlashing(fork, state, attesterSlashing, verifySignatures = true) {
|
|
11
11
|
const { epochCtx } = state;
|
|
12
|
-
assertValidAttesterSlashing(state.config, epochCtx.
|
|
12
|
+
assertValidAttesterSlashing(state.config, epochCtx.pubkeyCache, state.slot, state.validators.length, attesterSlashing, verifySignatures);
|
|
13
13
|
const intersectingIndices = getAttesterSlashableIndices(attesterSlashing);
|
|
14
14
|
let slashedAny = false;
|
|
15
15
|
const validators = state.validators; // Get the validators sub tree once for all indices
|
|
@@ -24,7 +24,7 @@ export function processAttesterSlashing(fork, state, attesterSlashing, verifySig
|
|
|
24
24
|
throw new Error("AttesterSlashing did not result in any slashings");
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
export function assertValidAttesterSlashing(config,
|
|
27
|
+
export function assertValidAttesterSlashing(config, pubkeyCache, stateSlot, validatorsLen, attesterSlashing, verifySignatures = true) {
|
|
28
28
|
const attestation1 = attesterSlashing.attestation1;
|
|
29
29
|
const attestation2 = attesterSlashing.attestation2;
|
|
30
30
|
if (!isSlashableAttestationData(attestation1.data, attestation2.data)) {
|
|
@@ -34,7 +34,7 @@ export function assertValidAttesterSlashing(config, index2pubkey, stateSlot, val
|
|
|
34
34
|
// be higher than the clock and the slashing would still be valid. Same applies to attestation data index, which
|
|
35
35
|
// can be any arbitrary value. Must use bigint variants to hash correctly to all possible values
|
|
36
36
|
for (const [i, attestation] of [attestation1, attestation2].entries()) {
|
|
37
|
-
if (!isValidIndexedAttestationBigint(config,
|
|
37
|
+
if (!isValidIndexedAttestationBigint(config, pubkeyCache, stateSlot, validatorsLen, attestation, verifySignatures)) {
|
|
38
38
|
throw new Error(`AttesterSlashing attestation${i} is invalid`);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,2BAA2B,CACzB,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"processAttesterSlashing.js","sourceRoot":"","sources":["../../src/block/processAttesterSlashing.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,2BAA2B,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAAgC,EAChC,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,EAAC,QAAQ,EAAC,GAAG,KAAK,CAAC;IACzB,2BAA2B,CACzB,KAAK,CAAC,MAAM,EACZ,QAAQ,CAAC,WAAW,EACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IAEF,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,mDAAmD;IACxF,2CAA2C;IAC3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,WAAwB,EACxB,SAAe,EACf,aAAqB,EACrB,gBAAkC,EAClC,gBAAgB,GAAG,IAAI;IAEvB,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IACnD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,8GAA8G;IAC9G,gHAAgH;IAChH,gGAAgG;IAChG,KAAK,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACtE,IACE,CAAC,+BAA+B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAC9G,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -5,6 +5,6 @@ import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
|
|
|
5
5
|
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
6
6
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-apply_deposit_for_builder
|
|
7
7
|
*/
|
|
8
|
-
export declare function applyDepositForBuilder(state: CachedBeaconStateGloas, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64, signature: Bytes32): void;
|
|
8
|
+
export declare function applyDepositForBuilder(state: CachedBeaconStateGloas, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64, signature: Bytes32, slot: UintNum64): void;
|
|
9
9
|
export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest): void;
|
|
10
10
|
//# sourceMappingURL=processDepositRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;AAC5E,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAK7E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,SAAS,EACjB,qBAAqB,EAAE,OAAO,EAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,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;AAC5E,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAK7E;;;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;AA6CD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,GACrC,IAAI,CAqCN"}
|
|
@@ -7,7 +7,7 @@ import { isValidDepositSignature } from "./processDeposit.js";
|
|
|
7
7
|
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
8
8
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-apply_deposit_for_builder
|
|
9
9
|
*/
|
|
10
|
-
export function applyDepositForBuilder(state, pubkey, withdrawalCredentials, amount, signature) {
|
|
10
|
+
export function applyDepositForBuilder(state, pubkey, withdrawalCredentials, amount, signature, slot) {
|
|
11
11
|
const builderIndex = findBuilderIndexByPubkey(state, pubkey);
|
|
12
12
|
if (builderIndex !== null) {
|
|
13
13
|
// Existing builder - increase balance
|
|
@@ -17,7 +17,7 @@ export function applyDepositForBuilder(state, pubkey, withdrawalCredentials, amo
|
|
|
17
17
|
else {
|
|
18
18
|
// New builder - verify signature and add to registry
|
|
19
19
|
if (isValidDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
|
|
20
|
-
addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount);
|
|
20
|
+
addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount, slot);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -25,8 +25,9 @@ export function applyDepositForBuilder(state, pubkey, withdrawalCredentials, amo
|
|
|
25
25
|
* Add a new builder to the builders registry.
|
|
26
26
|
* Reuses slots from exited and fully withdrawn builders if available.
|
|
27
27
|
*/
|
|
28
|
-
function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount) {
|
|
28
|
+
function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount, slot) {
|
|
29
29
|
const currentEpoch = computeEpochAtSlot(state.slot);
|
|
30
|
+
const depositEpoch = computeEpochAtSlot(slot);
|
|
30
31
|
// Try to find a reusable slot from an exited builder with zero balance
|
|
31
32
|
let builderIndex = state.builders.length;
|
|
32
33
|
for (let i = 0; i < state.builders.length; i++) {
|
|
@@ -42,7 +43,7 @@ function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount) {
|
|
|
42
43
|
version: withdrawalCredentials[0],
|
|
43
44
|
executionAddress: withdrawalCredentials.subarray(12),
|
|
44
45
|
balance: amount,
|
|
45
|
-
depositEpoch:
|
|
46
|
+
depositEpoch: depositEpoch,
|
|
46
47
|
withdrawableEpoch: FAR_FUTURE_EPOCH,
|
|
47
48
|
});
|
|
48
49
|
if (builderIndex < state.builders.length) {
|
|
@@ -69,7 +70,7 @@ export function processDepositRequest(fork, state, depositRequest) {
|
|
|
69
70
|
// Route to builder if it's an existing builder OR has builder prefix and is not a validator
|
|
70
71
|
if (isBuilder || (isBuilderPrefix && !isValidator)) {
|
|
71
72
|
// Apply builder deposits immediately
|
|
72
|
-
applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature);
|
|
73
|
+
applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature, state.slot);
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
75
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,OAAO,EAAE,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAyC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAC,wBAAwB,EAAE,6BAA6B,EAAC,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA6B,EAC7B,MAAiB,EACjB,qBAA8B,EAC9B,MAAiB,EACjB,SAAkB;
|
|
1
|
+
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ForkPostGloas } from "@lodestar/params";
|
|
2
2
|
import { BeaconBlock } from "@lodestar/types";
|
|
3
|
-
import { CachedBeaconStateGloas } from "../types.
|
|
3
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
4
4
|
export declare function processExecutionPayloadBid(state: CachedBeaconStateGloas, block: BeaconBlock<ForkPostGloas>): void;
|
|
5
5
|
//# sourceMappingURL=processExecutionPayloadBid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAC,WAAW,EAAa,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAC,WAAW,EAAa,MAAM,iBAAiB,CAAC;AAIxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CA6EjH"}
|
|
@@ -48,6 +48,11 @@ export function processExecutionPayloadBid(state, block) {
|
|
|
48
48
|
if (!byteArrayEquals(bid.prevRandao, stateRandao)) {
|
|
49
49
|
throw Error(`Prev randao ${toHex(bid.prevRandao)} of bid does not match state's randao mix ${toHex(stateRandao)}`);
|
|
50
50
|
}
|
|
51
|
+
// Verify commitments are under limit
|
|
52
|
+
const maxBlobsPerBlock = state.config.getMaxBlobsPerBlock(state.epochCtx.epoch);
|
|
53
|
+
if (bid.blobKzgCommitments.length > maxBlobsPerBlock) {
|
|
54
|
+
throw Error(`Kzg commitments exceed limit commitments.length=${bid.blobKzgCommitments.length} limit=${maxBlobsPerBlock}`);
|
|
55
|
+
}
|
|
51
56
|
if (amount > 0) {
|
|
52
57
|
const pendingPaymentView = ssz.gloas.BuilderPendingPayment.toViewDU({
|
|
53
58
|
weight: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadBid.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadBid.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
|
-
import { CachedBeaconStateGloas } from "../types.
|
|
3
|
-
export
|
|
2
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
3
|
+
export type ProcessExecutionPayloadEnvelopeOpts = {
|
|
4
|
+
dontTransferCache?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function processExecutionPayloadEnvelope(state: CachedBeaconStateGloas, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, verify: boolean, opts?: ProcessExecutionPayloadEnvelopeOpts): CachedBeaconStateGloas;
|
|
4
7
|
//# sourceMappingURL=processExecutionPayloadEnvelope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAMnD,MAAM,MAAM,mCAAmC,GAAG;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAKF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,EAC7B,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,MAAM,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,mCAAmC,GACzC,sBAAsB,CAoDxB"}
|
|
@@ -6,39 +6,45 @@ import { computeSigningRoot, computeTimeAtSlot } from "../util/index.js";
|
|
|
6
6
|
import { processConsolidationRequest } from "./processConsolidationRequest.js";
|
|
7
7
|
import { processDepositRequest } from "./processDepositRequest.js";
|
|
8
8
|
import { processWithdrawalRequest } from "./processWithdrawalRequest.js";
|
|
9
|
-
//
|
|
10
|
-
|
|
9
|
+
// Unlike other block processing functions which mutate state in-place, this function
|
|
10
|
+
// clones the state and returns the post-state, similar to stateTransition().
|
|
11
|
+
// This function does not call execution engine to verify payload. Need to call it from other place.
|
|
12
|
+
export function processExecutionPayloadEnvelope(state, signedEnvelope, verify, opts) {
|
|
11
13
|
const envelope = signedEnvelope.message;
|
|
12
14
|
const payload = envelope.payload;
|
|
13
15
|
const fork = state.config.getForkSeq(envelope.slot);
|
|
14
16
|
if (verify && !verifyExecutionPayloadEnvelopeSignature(state, signedEnvelope)) {
|
|
15
17
|
throw Error(`Execution payload envelope has invalid signature builderIndex=${envelope.builderIndex}`);
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
// .clone() before mutating state, similar to stateTransition()
|
|
20
|
+
const postState = state.clone(opts?.dontTransferCache);
|
|
21
|
+
validateExecutionPayloadEnvelope(postState, envelope);
|
|
18
22
|
const requests = envelope.executionRequests;
|
|
19
23
|
for (const deposit of requests.deposits) {
|
|
20
|
-
processDepositRequest(fork,
|
|
24
|
+
processDepositRequest(fork, postState, deposit);
|
|
21
25
|
}
|
|
22
26
|
for (const withdrawal of requests.withdrawals) {
|
|
23
|
-
processWithdrawalRequest(fork,
|
|
27
|
+
processWithdrawalRequest(fork, postState, withdrawal);
|
|
24
28
|
}
|
|
25
29
|
for (const consolidation of requests.consolidations) {
|
|
26
|
-
processConsolidationRequest(
|
|
30
|
+
processConsolidationRequest(postState, consolidation);
|
|
27
31
|
}
|
|
28
32
|
// Queue the builder payment
|
|
29
|
-
const paymentIndex = SLOTS_PER_EPOCH + (
|
|
30
|
-
const payment =
|
|
33
|
+
const paymentIndex = SLOTS_PER_EPOCH + (postState.slot % SLOTS_PER_EPOCH);
|
|
34
|
+
const payment = postState.builderPendingPayments.get(paymentIndex).clone();
|
|
31
35
|
const amount = payment.withdrawal.amount;
|
|
32
36
|
if (amount > 0) {
|
|
33
|
-
|
|
37
|
+
postState.builderPendingWithdrawals.push(payment.withdrawal);
|
|
34
38
|
}
|
|
35
|
-
|
|
39
|
+
postState.builderPendingPayments.set(paymentIndex, ssz.gloas.BuilderPendingPayment.defaultViewDU());
|
|
36
40
|
// Cache the execution payload hash
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
postState.executionPayloadAvailability.set(postState.slot % SLOTS_PER_HISTORICAL_ROOT, true);
|
|
42
|
+
postState.latestBlockHash = payload.blockHash;
|
|
43
|
+
postState.commit();
|
|
44
|
+
if (verify && !byteArrayEquals(envelope.stateRoot, postState.hashTreeRoot())) {
|
|
45
|
+
throw new Error(`Envelope's state root does not match state envelope=${toRootHex(envelope.stateRoot)} state=${toRootHex(postState.hashTreeRoot())}`);
|
|
41
46
|
}
|
|
47
|
+
return postState;
|
|
42
48
|
}
|
|
43
49
|
function validateExecutionPayloadEnvelope(state, envelope) {
|
|
44
50
|
const payload = envelope.payload;
|
|
@@ -59,10 +65,6 @@ function validateExecutionPayloadEnvelope(state, envelope) {
|
|
|
59
65
|
if (envelope.builderIndex !== committedBid.builderIndex) {
|
|
60
66
|
throw new Error(`Builder index mismatch between envelope and committed bid envelope=${envelope.builderIndex} committedBid=${committedBid.builderIndex}`);
|
|
61
67
|
}
|
|
62
|
-
const envelopeKzgRoot = ssz.deneb.BlobKzgCommitments.hashTreeRoot(envelope.blobKzgCommitments);
|
|
63
|
-
if (!byteArrayEquals(committedBid.blobKzgCommitmentsRoot, envelopeKzgRoot)) {
|
|
64
|
-
throw new Error(`Kzg commitment root mismatch between envelope and committed bid envelope=${toRootHex(envelopeKzgRoot)} committedBid=${toRootHex(committedBid.blobKzgCommitmentsRoot)}`);
|
|
65
|
-
}
|
|
66
68
|
if (!byteArrayEquals(committedBid.prevRandao, payload.prevRandao)) {
|
|
67
69
|
throw new Error(`Prev randao mismatch between committed bid and payload committedBid=${toHex(committedBid.prevRandao)} payload=${toHex(payload.prevRandao)}`);
|
|
68
70
|
}
|
|
@@ -88,11 +90,6 @@ function validateExecutionPayloadEnvelope(state, envelope) {
|
|
|
88
90
|
if (payload.timestamp !== computeTimeAtSlot(state.config, state.slot, state.genesisTime)) {
|
|
89
91
|
throw new Error(`Timestamp mismatch between envelope's payload and state envelope=${payload.timestamp} state=${computeTimeAtSlot(state.config, state.slot, state.genesisTime)}`);
|
|
90
92
|
}
|
|
91
|
-
// Verify commitments are under limit
|
|
92
|
-
const maxBlobsPerBlock = state.config.getMaxBlobsPerBlock(state.epochCtx.epoch);
|
|
93
|
-
if (envelope.blobKzgCommitments.length > maxBlobsPerBlock) {
|
|
94
|
-
throw new Error(`Kzg commitments exceed limit commitment.length=${envelope.blobKzgCommitments.length} limit=${maxBlobsPerBlock}`);
|
|
95
|
-
}
|
|
96
93
|
// Skipped: Verify the execution payload is valid
|
|
97
94
|
}
|
|
98
95
|
function verifyExecutionPayloadEnvelopeSignature(state, signedEnvelope) {
|
|
@@ -103,7 +100,11 @@ function verifyExecutionPayloadEnvelopeSignature(state, signedEnvelope) {
|
|
|
103
100
|
let publicKey;
|
|
104
101
|
if (builderIndex === BUILDER_INDEX_SELF_BUILD) {
|
|
105
102
|
const validatorIndex = state.latestBlockHeader.proposerIndex;
|
|
106
|
-
|
|
103
|
+
const proposerPubkey = state.epochCtx.pubkeyCache.get(validatorIndex);
|
|
104
|
+
if (!proposerPubkey) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
publicKey = proposerPubkey;
|
|
107
108
|
}
|
|
108
109
|
else {
|
|
109
110
|
publicKey = PublicKey.fromBytes(state.builders.getReadonly(builderIndex).pubkey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
|
-
import { CachedBeaconStateGloas } from "../types.
|
|
2
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
3
3
|
export declare function processPayloadAttestation(state: CachedBeaconStateGloas, payloadAttestation: gloas.PayloadAttestation): void;
|
|
4
4
|
//# sourceMappingURL=processPayloadAttestation.d.ts.map
|
|
@@ -2,7 +2,7 @@ import { BeaconConfig } from "@lodestar/config";
|
|
|
2
2
|
import { ForkSeq } from "@lodestar/params";
|
|
3
3
|
import { Slot, phase0 } from "@lodestar/types";
|
|
4
4
|
import { Validator } from "@lodestar/types/phase0";
|
|
5
|
-
import {
|
|
5
|
+
import { PubkeyCache } from "../cache/pubkeyCache.js";
|
|
6
6
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
7
7
|
/**
|
|
8
8
|
* Process a ProposerSlashing operation. Initiates the exit of a validator, decreases the balance of the slashed
|
|
@@ -11,5 +11,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
|
|
|
11
11
|
* PERF: Work depends on number of ProposerSlashing per block. On regular networks the average is 0 / block.
|
|
12
12
|
*/
|
|
13
13
|
export declare function processProposerSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, proposerSlashing: phase0.ProposerSlashing, verifySignatures?: boolean): void;
|
|
14
|
-
export declare function assertValidProposerSlashing(config: BeaconConfig,
|
|
14
|
+
export declare function assertValidProposerSlashing(config: BeaconConfig, pubkeyCache: PubkeyCache, stateSlot: Slot, proposerSlashing: phase0.ProposerSlashing, proposer: Validator, verifySignatures?: boolean): void;
|
|
15
15
|
//# sourceMappingURL=processProposerSlashing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processProposerSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"processProposerSlashing.d.ts","sourceRoot":"","sources":["../../src/block/processProposerSlashing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAC,yBAAyB,EAAyB,MAAM,aAAa,CAAC;AAK9E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,gBAAgB,UAAO,GACtB,IAAI,CAiCN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,IAAI,EACf,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,QAAQ,EAAE,SAAS,EACnB,gBAAgB,UAAO,GACtB,IAAI,CAqCN"}
|