@lodestar/state-transition 1.39.1 → 1.40.0-dev.193b2e2047
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 +1 -0
- package/lib/block/index.d.ts.map +1 -1
- package/lib/block/index.js +1 -0
- package/lib/block/index.js.map +1 -1
- package/lib/block/isValidIndexedAttestation.d.ts +4 -5
- package/lib/block/isValidIndexedAttestation.d.ts.map +1 -1
- package/lib/block/isValidIndexedAttestation.js +9 -10
- package/lib/block/isValidIndexedAttestation.js.map +1 -1
- package/lib/block/isValidIndexedPayloadAttestation.d.ts.map +1 -1
- package/lib/block/isValidIndexedPayloadAttestation.js +1 -1
- package/lib/block/isValidIndexedPayloadAttestation.js.map +1 -1
- package/lib/block/processAttestationPhase0.d.ts.map +1 -1
- package/lib/block/processAttestationPhase0.js +1 -1
- package/lib/block/processAttestationPhase0.js.map +1 -1
- package/lib/block/processAttestationsAltair.d.ts.map +1 -1
- package/lib/block/processAttestationsAltair.js +2 -2
- package/lib/block/processAttestationsAltair.js.map +1 -1
- package/lib/block/processAttesterSlashing.d.ts +3 -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/processBlsToExecutionChange.d.ts +3 -1
- package/lib/block/processBlsToExecutionChange.d.ts.map +1 -1
- package/lib/block/processBlsToExecutionChange.js +7 -11
- package/lib/block/processBlsToExecutionChange.js.map +1 -1
- package/lib/block/processConsolidationRequest.d.ts +1 -2
- package/lib/block/processConsolidationRequest.d.ts.map +1 -1
- package/lib/block/processConsolidationRequest.js +2 -2
- package/lib/block/processConsolidationRequest.js.map +1 -1
- package/lib/block/processDepositRequest.d.ts +8 -2
- package/lib/block/processDepositRequest.d.ts.map +1 -1
- package/lib/block/processDepositRequest.js +81 -8
- package/lib/block/processDepositRequest.js.map +1 -1
- package/lib/block/processExecutionPayloadBid.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadBid.js +16 -29
- package/lib/block/processExecutionPayloadBid.js.map +1 -1
- package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -1
- package/lib/block/processExecutionPayloadEnvelope.js +26 -25
- package/lib/block/processExecutionPayloadEnvelope.js.map +1 -1
- package/lib/block/processOperations.js +2 -2
- package/lib/block/processOperations.js.map +1 -1
- package/lib/block/processProposerSlashing.d.ts +5 -2
- package/lib/block/processProposerSlashing.d.ts.map +1 -1
- package/lib/block/processProposerSlashing.js +8 -6
- package/lib/block/processProposerSlashing.js.map +1 -1
- package/lib/block/processSyncCommittee.d.ts +1 -2
- package/lib/block/processSyncCommittee.d.ts.map +1 -1
- package/lib/block/processSyncCommittee.js +5 -5
- package/lib/block/processSyncCommittee.js.map +1 -1
- package/lib/block/processVoluntaryExit.d.ts +1 -1
- package/lib/block/processVoluntaryExit.d.ts.map +1 -1
- package/lib/block/processVoluntaryExit.js +45 -3
- package/lib/block/processVoluntaryExit.js.map +1 -1
- package/lib/block/processWithdrawalRequest.js +1 -1
- package/lib/block/processWithdrawalRequest.js.map +1 -1
- package/lib/block/processWithdrawals.d.ts +1 -0
- package/lib/block/processWithdrawals.d.ts.map +1 -1
- package/lib/block/processWithdrawals.js +121 -66
- package/lib/block/processWithdrawals.js.map +1 -1
- package/lib/cache/epochCache.d.ts +8 -28
- package/lib/cache/epochCache.d.ts.map +1 -1
- package/lib/cache/epochCache.js +40 -180
- package/lib/cache/epochCache.js.map +1 -1
- package/lib/cache/epochTransitionCache.d.ts +5 -12
- package/lib/cache/epochTransitionCache.d.ts.map +1 -1
- package/lib/cache/epochTransitionCache.js +4 -14
- package/lib/cache/epochTransitionCache.js.map +1 -1
- package/lib/cache/stateCache.d.ts.map +1 -1
- package/lib/cache/stateCache.js +1 -2
- package/lib/cache/stateCache.js.map +1 -1
- package/lib/epoch/processBuilderPendingPayments.d.ts.map +1 -1
- package/lib/epoch/processBuilderPendingPayments.js +1 -4
- package/lib/epoch/processBuilderPendingPayments.js.map +1 -1
- package/lib/epoch/processProposerLookahead.d.ts.map +1 -1
- package/lib/epoch/processProposerLookahead.js +3 -6
- package/lib/epoch/processProposerLookahead.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/rewards/blockRewards.d.ts +2 -1
- package/lib/rewards/blockRewards.d.ts.map +1 -1
- package/lib/rewards/blockRewards.js +3 -2
- package/lib/rewards/blockRewards.js.map +1 -1
- package/lib/rewards/syncCommitteeRewards.d.ts.map +1 -1
- package/lib/rewards/syncCommitteeRewards.js +10 -11
- package/lib/rewards/syncCommitteeRewards.js.map +1 -1
- package/lib/signatureSets/attesterSlashings.d.ts +3 -4
- package/lib/signatureSets/attesterSlashings.d.ts.map +1 -1
- package/lib/signatureSets/attesterSlashings.js +6 -6
- package/lib/signatureSets/attesterSlashings.js.map +1 -1
- package/lib/signatureSets/blsToExecutionChange.d.ts +4 -5
- package/lib/signatureSets/blsToExecutionChange.d.ts.map +1 -1
- package/lib/signatureSets/blsToExecutionChange.js +2 -2
- package/lib/signatureSets/blsToExecutionChange.js.map +1 -1
- package/lib/signatureSets/executionPayloadBid.d.ts +4 -0
- package/lib/signatureSets/executionPayloadBid.d.ts.map +1 -0
- package/lib/signatureSets/executionPayloadBid.js +8 -0
- package/lib/signatureSets/executionPayloadBid.js.map +1 -0
- package/lib/signatureSets/executionPayloadEnvelope.d.ts +4 -0
- package/lib/signatureSets/executionPayloadEnvelope.d.ts.map +1 -0
- package/lib/signatureSets/executionPayloadEnvelope.js +8 -0
- package/lib/signatureSets/executionPayloadEnvelope.js.map +1 -0
- package/lib/signatureSets/index.d.ts +3 -2
- package/lib/signatureSets/index.d.ts.map +1 -1
- package/lib/signatureSets/index.js +10 -8
- package/lib/signatureSets/index.js.map +1 -1
- package/lib/signatureSets/indexedAttestation.d.ts +3 -4
- package/lib/signatureSets/indexedAttestation.d.ts.map +1 -1
- package/lib/signatureSets/indexedAttestation.js +6 -6
- package/lib/signatureSets/indexedAttestation.js.map +1 -1
- package/lib/signatureSets/indexedPayloadAttestation.d.ts +5 -4
- package/lib/signatureSets/indexedPayloadAttestation.d.ts.map +1 -1
- package/lib/signatureSets/indexedPayloadAttestation.js +3 -3
- package/lib/signatureSets/indexedPayloadAttestation.js.map +1 -1
- package/lib/signatureSets/proposer.d.ts +3 -3
- package/lib/signatureSets/proposer.d.ts.map +1 -1
- package/lib/signatureSets/proposer.js +12 -12
- package/lib/signatureSets/proposer.js.map +1 -1
- package/lib/signatureSets/proposerSlashings.d.ts +2 -3
- package/lib/signatureSets/proposerSlashings.d.ts.map +1 -1
- package/lib/signatureSets/proposerSlashings.js +6 -6
- package/lib/signatureSets/proposerSlashings.js.map +1 -1
- package/lib/signatureSets/randao.d.ts +1 -1
- package/lib/signatureSets/randao.d.ts.map +1 -1
- package/lib/signatureSets/randao.js +4 -4
- 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 +6 -6
- package/lib/signatureSets/voluntaryExits.js.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/util/electra.d.ts.map +1 -1
- package/lib/util/electra.js +1 -2
- package/lib/util/electra.js.map +1 -1
- package/lib/util/epochShuffling.d.ts +1 -34
- package/lib/util/epochShuffling.d.ts.map +1 -1
- package/lib/util/epochShuffling.js +1 -1
- package/lib/util/epochShuffling.js.map +1 -1
- package/lib/util/gloas.d.ts +46 -5
- package/lib/util/gloas.d.ts.map +1 -1
- package/lib/util/gloas.js +91 -5
- package/lib/util/gloas.js.map +1 -1
- package/lib/util/index.d.ts +2 -2
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +2 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/shuffling.d.ts +58 -0
- package/lib/util/shuffling.d.ts.map +1 -0
- package/lib/util/shuffling.js +175 -0
- package/lib/util/shuffling.js.map +1 -0
- package/lib/util/signatureSets.d.ts +38 -5
- package/lib/util/signatureSets.d.ts.map +1 -1
- package/lib/util/signatureSets.js +48 -6
- package/lib/util/signatureSets.js.map +1 -1
- package/lib/util/validator.d.ts +6 -1
- package/lib/util/validator.d.ts.map +1 -1
- package/lib/util/validator.js +26 -16
- package/lib/util/validator.js.map +1 -1
- package/package.json +7 -7
- package/src/block/index.ts +1 -0
- package/src/block/isValidIndexedAttestation.ts +18 -12
- package/src/block/isValidIndexedPayloadAttestation.ts +4 -1
- package/src/block/processAttestationPhase0.ts +2 -1
- package/src/block/processAttestationsAltair.ts +2 -8
- package/src/block/processAttesterSlashing.ts +16 -4
- package/src/block/processBlsToExecutionChange.ts +13 -14
- package/src/block/processConsolidationRequest.ts +2 -3
- package/src/block/processDepositRequest.ts +101 -8
- package/src/block/processExecutionPayloadBid.ts +20 -42
- package/src/block/processExecutionPayloadEnvelope.ts +34 -30
- package/src/block/processOperations.ts +2 -2
- package/src/block/processProposerSlashing.ts +22 -12
- package/src/block/processSyncCommittee.ts +3 -6
- package/src/block/processVoluntaryExit.ts +60 -5
- package/src/block/processWithdrawalRequest.ts +1 -1
- package/src/block/processWithdrawals.ts +168 -70
- package/src/cache/epochCache.ts +52 -214
- package/src/cache/epochTransitionCache.ts +9 -34
- package/src/cache/stateCache.ts +1 -2
- package/src/epoch/processBuilderPendingPayments.ts +1 -5
- package/src/epoch/processProposerLookahead.ts +3 -7
- package/src/index.ts +0 -2
- package/src/rewards/blockRewards.ts +6 -3
- package/src/rewards/syncCommitteeRewards.ts +10 -13
- package/src/signatureSets/attesterSlashings.ts +3 -7
- package/src/signatureSets/blsToExecutionChange.ts +5 -6
- package/src/signatureSets/executionPayloadBid.ts +14 -0
- package/src/signatureSets/executionPayloadEnvelope.ts +13 -0
- package/src/signatureSets/index.ts +8 -9
- package/src/signatureSets/indexedAttestation.ts +2 -7
- package/src/signatureSets/indexedPayloadAttestation.ts +9 -7
- package/src/signatureSets/proposer.ts +8 -12
- package/src/signatureSets/proposerSlashings.ts +4 -7
- package/src/signatureSets/randao.ts +4 -8
- package/src/signatureSets/voluntaryExits.ts +5 -10
- package/src/types.ts +1 -0
- package/src/util/electra.ts +1 -4
- package/src/util/epochShuffling.ts +2 -43
- package/src/util/gloas.ts +116 -10
- package/src/util/index.ts +2 -2
- package/src/util/shuffling.ts +234 -0
- package/src/util/signatureSets.ts +84 -8
- package/src/util/validator.ts +31 -16
- package/lib/util/calculateCommitteeAssignments.d.ts +0 -12
- package/lib/util/calculateCommitteeAssignments.d.ts.map +0 -1
- package/lib/util/calculateCommitteeAssignments.js +0 -26
- package/lib/util/calculateCommitteeAssignments.js.map +0 -1
- package/lib/util/shufflingDecisionRoot.d.ts +0 -20
- package/lib/util/shufflingDecisionRoot.d.ts.map +0 -1
- package/lib/util/shufflingDecisionRoot.js +0 -76
- package/lib/util/shufflingDecisionRoot.js.map +0 -1
- package/src/util/calculateCommitteeAssignments.ts +0 -43
- package/src/util/shufflingDecisionRoot.ts +0 -81
package/lib/block/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { processBlockHeader, processExecutionPayload, processRandao, processEth1
|
|
|
17
17
|
export * from "./externalData.js";
|
|
18
18
|
export * from "./initiateValidatorExit.js";
|
|
19
19
|
export * from "./isValidIndexedAttestation.js";
|
|
20
|
+
export * from "./processDepositRequest.js";
|
|
20
21
|
export * from "./processOperations.js";
|
|
21
22
|
export declare function processBlock(fork: ForkSeq, state: CachedBeaconStateAllForks, block: BeaconBlock | BlindedBeaconBlock, externalData: BlockExternalData & ProcessBlockOpts, opts?: ProcessBlockOpts, metrics?: BeaconStateTransitionMetrics | null): void;
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
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;AAC3E,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AAErF,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,+BAA+B,GAChC,CAAC;AAEF,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,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,CAoDN"}
|
|
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;AAC3E,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AAErF,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,+BAA+B,GAChC,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,CAoDN"}
|
package/lib/block/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export { processBlockHeader, processExecutionPayload, processRandao, processEth1
|
|
|
18
18
|
export * from "./externalData.js";
|
|
19
19
|
export * from "./initiateValidatorExit.js";
|
|
20
20
|
export * from "./isValidIndexedAttestation.js";
|
|
21
|
+
export * from "./processDepositRequest.js";
|
|
21
22
|
export * from "./processOperations.js";
|
|
22
23
|
export function processBlock(fork, state, block, externalData, opts, metrics) {
|
|
23
24
|
const { verifySignatures = true } = opts ?? {};
|
package/lib/block/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { BeaconConfig } from "@lodestar/config";
|
|
2
|
-
import { IndexedAttestation, IndexedAttestationBigint } from "@lodestar/types";
|
|
2
|
+
import { IndexedAttestation, IndexedAttestationBigint, Slot } from "@lodestar/types";
|
|
3
3
|
import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
|
|
4
|
-
import { CachedBeaconStateAllForks } from "../types.js";
|
|
5
4
|
/**
|
|
6
5
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
7
6
|
*/
|
|
8
|
-
export declare function isValidIndexedAttestation(config: BeaconConfig, index2pubkey: Index2PubkeyCache,
|
|
9
|
-
export declare function isValidIndexedAttestationBigint(config: BeaconConfig, index2pubkey: Index2PubkeyCache,
|
|
7
|
+
export declare function isValidIndexedAttestation(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestation, verifySignature: boolean): boolean;
|
|
8
|
+
export declare function isValidIndexedAttestationBigint(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, indexedAttestation: IndexedAttestationBigint, verifySignature: boolean): boolean;
|
|
10
9
|
/**
|
|
11
10
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
12
11
|
*/
|
|
13
|
-
export declare function isValidIndexedAttestationIndices(
|
|
12
|
+
export declare function isValidIndexedAttestationIndices(config: BeaconConfig, stateSlot: Slot, validatorsLen: number, indices: number[]): boolean;
|
|
14
13
|
//# sourceMappingURL=isValidIndexedAttestation.d.ts.map
|
|
@@ -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,EAAC,MAAM,iBAAiB,CAAC;
|
|
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,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,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,YAAY,EAAE,iBAAiB,EAC/B,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,30 +4,30 @@ 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, index2pubkey,
|
|
8
|
-
if (!isValidIndexedAttestationIndices(
|
|
7
|
+
export function isValidIndexedAttestation(config, index2pubkey, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
|
|
8
|
+
if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
|
|
9
9
|
return false;
|
|
10
10
|
}
|
|
11
11
|
if (verifySignature) {
|
|
12
|
-
return verifySignatureSet(getIndexedAttestationSignatureSet(config,
|
|
12
|
+
return verifySignatureSet(getIndexedAttestationSignatureSet(config, stateSlot, indexedAttestation), index2pubkey);
|
|
13
13
|
}
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
16
|
-
export function isValidIndexedAttestationBigint(config, index2pubkey,
|
|
17
|
-
if (!isValidIndexedAttestationIndices(
|
|
16
|
+
export function isValidIndexedAttestationBigint(config, index2pubkey, stateSlot, validatorsLen, indexedAttestation, verifySignature) {
|
|
17
|
+
if (!isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indexedAttestation.attestingIndices)) {
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
if (verifySignature) {
|
|
21
|
-
return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config,
|
|
21
|
+
return verifySignatureSet(getIndexedAttestationBigintSignatureSet(config, stateSlot, indexedAttestation), index2pubkey);
|
|
22
22
|
}
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
|
|
27
27
|
*/
|
|
28
|
-
export function isValidIndexedAttestationIndices(
|
|
28
|
+
export function isValidIndexedAttestationIndices(config, stateSlot, validatorsLen, indices) {
|
|
29
29
|
// verify max number of indices
|
|
30
|
-
const maxIndices =
|
|
30
|
+
const maxIndices = config.getForkSeq(stateSlot) >= ForkSeq.electra
|
|
31
31
|
? MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT
|
|
32
32
|
: MAX_VALIDATORS_PER_COMMITTEE;
|
|
33
33
|
if (!(indices.length > 0 && indices.length <= maxIndices)) {
|
|
@@ -43,9 +43,8 @@ export function isValidIndexedAttestationIndices(state, indices) {
|
|
|
43
43
|
prev = index;
|
|
44
44
|
}
|
|
45
45
|
// check if indices are out of bounds, by checking the highest index (since it is sorted)
|
|
46
|
-
// TODO - SLOW CODE - Does this .length check the tree and is expensive?
|
|
47
46
|
const lastIndex = indices.at(-1);
|
|
48
|
-
if (lastIndex && lastIndex >=
|
|
47
|
+
if (lastIndex && lastIndex >= validatorsLen) {
|
|
49
48
|
return false;
|
|
50
49
|
}
|
|
51
50
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EAAC,uCAAuC,EAAE,iCAAiC,EAAC,MAAM,2BAA2B,CAAC;
|
|
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,YAA+B,EAC/B,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,YAAY,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,YAA+B,EAC/B,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,YAAY,CACb,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidIndexedPayloadAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,sBAAsB,EAC7B,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,eAAe,EAAE,OAAO,GACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"isValidIndexedPayloadAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,sBAAsB,EAC7B,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,eAAe,EAAE,OAAO,GACvB,OAAO,CAgBT"}
|
|
@@ -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));
|
|
10
|
+
return verifySignatureSet(getIndexedPayloadAttestationSignatureSet(state, indexedPayloadAttestation), state.epochCtx.index2pubkey);
|
|
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,
|
|
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,EAC1E,KAAK,CAAC,QAAQ,CAAC,YAAY,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,CA8CN;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA2FnH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAM9E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAErE"}
|
|
@@ -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.index2pubkey, state, epochCtx.getIndexedAttestation(ForkSeq.phase0, attestation), verifySignature)) {
|
|
36
|
+
if (!isValidIndexedAttestation(state.config, epochCtx.index2pubkey, 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,YAAY,EACrB,KAAK,
|
|
1
|
+
{"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAYR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,uBAAuB,GAAG,sBAAsB,EACvD,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAO,EACtB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,
|
|
1
|
+
{"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAYR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,uBAAuB,GAAG,sBAAsB,EACvD,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAO,EACtB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CAiIN;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,eAAe,EAC5B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,4BAA4B,EAAE,OAAO,EAAE,GAAG,IAAI,GAC7C,MAAM,CAuDR;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAE7F"}
|
|
@@ -32,8 +32,8 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
|
|
|
32
32
|
// TODO: Why should we verify an indexed attestation that we just created? If it's just for the signature
|
|
33
33
|
// we can verify only that and nothing else.
|
|
34
34
|
if (verifySignature) {
|
|
35
|
-
const sigSet = getAttestationWithIndicesSignatureSet(state.config,
|
|
36
|
-
if (!verifySignatureSet(sigSet)) {
|
|
35
|
+
const sigSet = getAttestationWithIndicesSignatureSet(state.config, state.slot, attestation, attestingIndices);
|
|
36
|
+
if (!verifySignatureSet(sigSet, state.epochCtx.index2pubkey)) {
|
|
37
37
|
throw new Error("Attestation signature is not valid");
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,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,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAExC,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,
|
|
1
|
+
{"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { BeaconConfig } from "@lodestar/config";
|
|
1
2
|
import { ForkSeq } from "@lodestar/params";
|
|
2
|
-
import { AttesterSlashing } from "@lodestar/types";
|
|
3
|
+
import { AttesterSlashing, Slot } from "@lodestar/types";
|
|
3
4
|
import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
|
|
4
5
|
import { CachedBeaconStateAllForks } from "../types.js";
|
|
5
6
|
/**
|
|
@@ -9,5 +10,5 @@ import { CachedBeaconStateAllForks } from "../types.js";
|
|
|
9
10
|
* PERF: Work depends on number of AttesterSlashing per block. On regular networks the average is 0 / block.
|
|
10
11
|
*/
|
|
11
12
|
export declare function processAttesterSlashing(fork: ForkSeq, state: CachedBeaconStateAllForks, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
12
|
-
export declare function assertValidAttesterSlashing(index2pubkey: Index2PubkeyCache,
|
|
13
|
+
export declare function assertValidAttesterSlashing(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, validatorsLen: number, attesterSlashing: AttesterSlashing, verifySignatures?: boolean): void;
|
|
13
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,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;
|
|
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,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,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,YAAY,EAAE,iBAAiB,EAC/B,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(epochCtx.index2pubkey, state, attesterSlashing, verifySignatures);
|
|
12
|
+
assertValidAttesterSlashing(state.config, epochCtx.index2pubkey, 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(index2pubkey,
|
|
27
|
+
export function assertValidAttesterSlashing(config, index2pubkey, 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(index2pubkey, state, attesterSlashin
|
|
|
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(
|
|
37
|
+
if (!isValidIndexedAttestationBigint(config, index2pubkey, 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":"
|
|
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,YAAY,EACrB,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,YAA+B,EAC/B,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,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAC/G,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { BeaconConfig } from "@lodestar/config";
|
|
1
2
|
import { capella } from "@lodestar/types";
|
|
3
|
+
import { Validator } from "@lodestar/types/phase0";
|
|
2
4
|
import { CachedBeaconStateCapella } from "../types.js";
|
|
3
5
|
export declare function processBlsToExecutionChange(state: CachedBeaconStateCapella, signedBlsToExecutionChange: capella.SignedBLSToExecutionChange): void;
|
|
4
|
-
export declare function isValidBlsToExecutionChange(
|
|
6
|
+
export declare function isValidBlsToExecutionChange(config: BeaconConfig, validator: Validator, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange, verifySignature?: boolean): {
|
|
5
7
|
valid: true;
|
|
6
8
|
} | {
|
|
7
9
|
valid: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBlsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processBlsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAErD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,IAAI,CAqBN;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,EAC9D,eAAe,UAAO,GACrB;IAAC,KAAK,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAmC9C"}
|
|
@@ -5,26 +5,22 @@ import { toHex } from "@lodestar/utils";
|
|
|
5
5
|
import { verifyBlsToExecutionChangeSignature } from "../signatureSets/index.js";
|
|
6
6
|
export function processBlsToExecutionChange(state, signedBlsToExecutionChange) {
|
|
7
7
|
const addressChange = signedBlsToExecutionChange.message;
|
|
8
|
-
|
|
8
|
+
if (addressChange.validatorIndex >= state.validators.length) {
|
|
9
|
+
throw Error(`withdrawalValidatorIndex ${addressChange.validatorIndex} >= state.validators len ${state.validators.length}`);
|
|
10
|
+
}
|
|
11
|
+
const validator = state.validators.get(addressChange.validatorIndex);
|
|
12
|
+
const validation = isValidBlsToExecutionChange(state.config, validator, signedBlsToExecutionChange, true);
|
|
9
13
|
if (!validation.valid) {
|
|
10
14
|
throw validation.error;
|
|
11
15
|
}
|
|
12
|
-
const validator = state.validators.get(addressChange.validatorIndex);
|
|
13
16
|
const newWithdrawalCredentials = new Uint8Array(32);
|
|
14
17
|
newWithdrawalCredentials[0] = ETH1_ADDRESS_WITHDRAWAL_PREFIX;
|
|
15
18
|
newWithdrawalCredentials.set(addressChange.toExecutionAddress, 12);
|
|
16
19
|
// Set the new credentials back
|
|
17
20
|
validator.withdrawalCredentials = newWithdrawalCredentials;
|
|
18
21
|
}
|
|
19
|
-
export function isValidBlsToExecutionChange(
|
|
22
|
+
export function isValidBlsToExecutionChange(config, validator, signedBLSToExecutionChange, verifySignature = true) {
|
|
20
23
|
const addressChange = signedBLSToExecutionChange.message;
|
|
21
|
-
if (addressChange.validatorIndex >= state.validators.length) {
|
|
22
|
-
return {
|
|
23
|
-
valid: false,
|
|
24
|
-
error: Error(`withdrawalValidatorIndex ${addressChange.validatorIndex} > state.validators len ${state.validators.length}`),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
const validator = state.validators.getReadonly(addressChange.validatorIndex);
|
|
28
24
|
const { withdrawalCredentials } = validator;
|
|
29
25
|
if (withdrawalCredentials[0] !== BLS_WITHDRAWAL_PREFIX) {
|
|
30
26
|
return {
|
|
@@ -41,7 +37,7 @@ export function isValidBlsToExecutionChange(state, signedBLSToExecutionChange, v
|
|
|
41
37
|
error: Error(`Invalid withdrawalCredentials expected=${toHex(withdrawalCredentials)} actual=${toHex(digestCredentials)}`),
|
|
42
38
|
};
|
|
43
39
|
}
|
|
44
|
-
if (verifySignature && !verifyBlsToExecutionChangeSignature(
|
|
40
|
+
if (verifySignature && !verifyBlsToExecutionChangeSignature(config, signedBLSToExecutionChange)) {
|
|
45
41
|
return {
|
|
46
42
|
valid: false,
|
|
47
43
|
error: Error(`Signature could not be verified for BLS to Execution Change for validatorIndex${addressChange.validatorIndex}`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBlsToExecutionChange.js","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"processBlsToExecutionChange.js","sourceRoot":"","sources":["../../src/block/processBlsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAC,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAGvF,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,mCAAmC,EAAC,MAAM,2BAA2B,CAAC;AAG9E,MAAM,UAAU,2BAA2B,CACzC,KAA+B,EAC/B,0BAA8D;IAE9D,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,IAAI,aAAa,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,KAAK,CACT,4BAA4B,aAAa,CAAC,cAAc,4BAA4B,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC1G,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpD,wBAAwB,CAAC,CAAC,CAAC,GAAG,8BAA8B,CAAC;IAC7D,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEnE,+BAA+B;IAC/B,SAAS,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,SAAoB,EACpB,0BAA8D,EAC9D,eAAe,GAAG,IAAI;IAEtB,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAEzD,MAAM,EAAC,qBAAqB,EAAC,GAAG,SAAS,CAAC;IAC1C,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iDAAiD,qBAAqB,WAAW,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,iBAAiB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;IAC7C,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,0CAA0C,KAAK,CAAC,qBAAqB,CAAC,WAAW,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAC5G;SACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAChG,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK,CACV,iFAAiF,aAAa,CAAC,cAAc,EAAE,CAChH;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;AACvB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ForkSeq } from "@lodestar/params";
|
|
2
1
|
import { electra } from "@lodestar/types";
|
|
3
2
|
import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
|
|
4
|
-
export declare function processConsolidationRequest(
|
|
3
|
+
export declare function processConsolidationRequest(state: CachedBeaconStateElectra | CachedBeaconStateGloas, consolidationRequest: electra.ConsolidationRequest): void;
|
|
5
4
|
//# sourceMappingURL=processConsolidationRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,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,CAkFN"}
|
|
@@ -5,7 +5,7 @@ import { hasCompoundingWithdrawalCredential, hasExecutionWithdrawalCredential, i
|
|
|
5
5
|
import { computeConsolidationEpochAndUpdateChurn } from "../util/epoch.js";
|
|
6
6
|
import { getConsolidationChurnLimit, getPendingBalanceToWithdraw, isActiveValidator } from "../util/validator.js";
|
|
7
7
|
// TODO Electra: Clean up necessary as there is a lot of overlap with isValidSwitchToCompoundRequest
|
|
8
|
-
export function processConsolidationRequest(
|
|
8
|
+
export function processConsolidationRequest(state, consolidationRequest) {
|
|
9
9
|
const { sourcePubkey, targetPubkey, sourceAddress } = consolidationRequest;
|
|
10
10
|
if (!isPubkeyKnown(state, sourcePubkey) || !isPubkeyKnown(state, targetPubkey)) {
|
|
11
11
|
return;
|
|
@@ -59,7 +59,7 @@ export function processConsolidationRequest(fork, state, consolidationRequest) {
|
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
// Verify the source has no pending withdrawals in the queue
|
|
62
|
-
if (getPendingBalanceToWithdraw(
|
|
62
|
+
if (getPendingBalanceToWithdraw(state, sourceIndex) > 0) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
65
|
// Initiate source validator exit and append pending consolidation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForkSeq } from "@lodestar/params";
|
|
2
|
+
import { BLSPubkey, Bytes32, UintNum64, electra } from "@lodestar/types";
|
|
2
3
|
import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
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
|
+
*/
|
|
8
|
+
export declare function applyDepositForBuilder(state: CachedBeaconStateGloas, pubkey: BLSPubkey, withdrawalCredentials: Bytes32, amount: UintNum64, signature: Bytes32): void;
|
|
9
|
+
export declare function processDepositRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest): void;
|
|
4
10
|
//# sourceMappingURL=processDepositRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"
|
|
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,GACjB,IAAI,CAaN;AA2CD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,GACrC,IAAI,CAqCN"}
|
|
@@ -1,15 +1,88 @@
|
|
|
1
|
-
import { UNSET_DEPOSIT_REQUESTS_START_INDEX } from "@lodestar/params";
|
|
1
|
+
import { FAR_FUTURE_EPOCH, ForkSeq, UNSET_DEPOSIT_REQUESTS_START_INDEX } from "@lodestar/params";
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { findBuilderIndexByPubkey, isBuilderWithdrawalCredential } from "../util/gloas.js";
|
|
4
|
+
import { computeEpochAtSlot, isValidatorKnown } from "../util/index.js";
|
|
5
|
+
import { isValidDepositSignature } from "./processDeposit.js";
|
|
6
|
+
/**
|
|
7
|
+
* Apply a deposit for a builder. Either increases balance for existing builder or adds new builder to registry.
|
|
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
|
+
*/
|
|
10
|
+
export function applyDepositForBuilder(state, pubkey, withdrawalCredentials, amount, signature) {
|
|
11
|
+
const builderIndex = findBuilderIndexByPubkey(state, pubkey);
|
|
12
|
+
if (builderIndex !== null) {
|
|
13
|
+
// Existing builder - increase balance
|
|
14
|
+
const builder = state.builders.get(builderIndex);
|
|
15
|
+
builder.balance += amount;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
// New builder - verify signature and add to registry
|
|
19
|
+
if (isValidDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
|
|
20
|
+
addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Add a new builder to the builders registry.
|
|
26
|
+
* Reuses slots from exited and fully withdrawn builders if available.
|
|
27
|
+
*/
|
|
28
|
+
function addBuilderToRegistry(state, pubkey, withdrawalCredentials, amount) {
|
|
29
|
+
const currentEpoch = computeEpochAtSlot(state.slot);
|
|
30
|
+
// Try to find a reusable slot from an exited builder with zero balance
|
|
31
|
+
let builderIndex = state.builders.length;
|
|
32
|
+
for (let i = 0; i < state.builders.length; i++) {
|
|
33
|
+
const builder = state.builders.getReadonly(i);
|
|
34
|
+
if (builder.withdrawableEpoch <= currentEpoch && builder.balance === 0) {
|
|
35
|
+
builderIndex = i;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Create new builder
|
|
40
|
+
const newBuilder = ssz.gloas.Builder.toViewDU({
|
|
41
|
+
pubkey,
|
|
42
|
+
version: withdrawalCredentials[0],
|
|
43
|
+
executionAddress: withdrawalCredentials.subarray(12),
|
|
44
|
+
balance: amount,
|
|
45
|
+
depositEpoch: currentEpoch,
|
|
46
|
+
withdrawableEpoch: FAR_FUTURE_EPOCH,
|
|
47
|
+
});
|
|
48
|
+
if (builderIndex < state.builders.length) {
|
|
49
|
+
// Reuse existing slot
|
|
50
|
+
state.builders.set(builderIndex, newBuilder);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Append to end
|
|
54
|
+
state.builders.push(newBuilder);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function processDepositRequest(fork, state, depositRequest) {
|
|
58
|
+
const { pubkey, withdrawalCredentials, amount, signature } = depositRequest;
|
|
59
|
+
// Check if this is a builder or validator deposit
|
|
60
|
+
if (fork >= ForkSeq.gloas) {
|
|
61
|
+
const stateGloas = state;
|
|
62
|
+
const builderIndex = findBuilderIndexByPubkey(stateGloas, pubkey);
|
|
63
|
+
const validatorIndex = state.epochCtx.getValidatorIndex(pubkey);
|
|
64
|
+
// Regardless of the withdrawal credentials prefix, if a builder/validator
|
|
65
|
+
// already exists with this pubkey, apply the deposit to their balance
|
|
66
|
+
const isBuilder = builderIndex !== null;
|
|
67
|
+
const isValidator = isValidatorKnown(state, validatorIndex);
|
|
68
|
+
const isBuilderPrefix = isBuilderWithdrawalCredential(withdrawalCredentials);
|
|
69
|
+
// Route to builder if it's an existing builder OR has builder prefix and is not a validator
|
|
70
|
+
if (isBuilder || (isBuilderPrefix && !isValidator)) {
|
|
71
|
+
// Apply builder deposits immediately
|
|
72
|
+
applyDepositForBuilder(stateGloas, pubkey, withdrawalCredentials, amount, signature);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Only set deposit_requests_start_index in Electra fork, not Gloas
|
|
77
|
+
if (fork < ForkSeq.gloas && state.depositRequestsStartIndex === UNSET_DEPOSIT_REQUESTS_START_INDEX) {
|
|
5
78
|
state.depositRequestsStartIndex = depositRequest.index;
|
|
6
79
|
}
|
|
7
|
-
//
|
|
80
|
+
// Add validator deposits to the queue
|
|
8
81
|
const pendingDeposit = ssz.electra.PendingDeposit.toViewDU({
|
|
9
|
-
pubkey
|
|
10
|
-
withdrawalCredentials
|
|
11
|
-
amount
|
|
12
|
-
signature
|
|
82
|
+
pubkey,
|
|
83
|
+
withdrawalCredentials,
|
|
84
|
+
amount,
|
|
85
|
+
signature,
|
|
13
86
|
slot: state.slot,
|
|
14
87
|
});
|
|
15
88
|
state.pendingDeposits.push(pendingDeposit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAEA,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,CAqEjH"}
|