diff --git a/packages/beacon-node/src/api/impl/config/constants.ts b/packages/beacon-node/src/api/impl/config/constants.ts index e0cd383b4163..c35d8f1f17ca 100644 --- a/packages/beacon-node/src/api/impl/config/constants.ts +++ b/packages/beacon-node/src/api/impl/config/constants.ts @@ -12,6 +12,7 @@ import { BUILDER_PAYMENT_THRESHOLD_DENOMINATOR, BUILDER_PAYMENT_THRESHOLD_NUMERATOR, BUILDER_WITHDRAWAL_PREFIX, + BYTES_PER_FIELD_ELEMENT, COMPOUNDING_WITHDRAWAL_PREFIX, CONSOLIDATION_REQUEST_TYPE, DEPOSIT_CONTRACT_TREE_DEPTH, @@ -131,6 +132,7 @@ export const specConstants = { // Deneb types BLOB_TX_TYPE: toHexByte(BLOB_TX_TYPE), VERSIONED_HASH_VERSION_KZG: toHexByte(VERSIONED_HASH_VERSION_KZG), + BYTES_PER_FIELD_ELEMENT, // electra UNSET_DEPOSIT_REQUESTS_START_INDEX, diff --git a/packages/beacon-node/src/chain/opPools/aggregatedAttestationPool.ts b/packages/beacon-node/src/chain/opPools/aggregatedAttestationPool.ts index 72be5eec7fe2..76543fa57459 100644 --- a/packages/beacon-node/src/chain/opPools/aggregatedAttestationPool.ts +++ b/packages/beacon-node/src/chain/opPools/aggregatedAttestationPool.ts @@ -234,6 +234,7 @@ export class AggregatedAttestationPool { const stateEpoch = state.epoch; const statePrevEpoch = stateEpoch - 1; const rootCache = new RootCache(state); + const gloasState = isStatePostGloas(state) ? state : null; const notSeenValidatorsFn = getNotSeenValidatorsFn(this.config, shufflingCache, state); const validateAttestationDataFn = getValidateAttestationDataFn(forkChoice, state); @@ -361,7 +362,8 @@ export class AggregatedAttestationPool { inclusionDistance, stateEpoch, rootCache, - isStatePostGloas(state) ? state.executionPayloadAvailability : null + gloasState?.executionPayloadAvailability ?? null, + gloasState?.latestExecutionPayloadBid.slot ?? null ); const weight = diff --git a/packages/beacon-node/test/spec/presets/fast_confirmation.test.ts b/packages/beacon-node/test/spec/presets/fast_confirmation.test.ts index 3f79f1657a0b..1d1f37b8b8ea 100644 --- a/packages/beacon-node/test/spec/presets/fast_confirmation.test.ts +++ b/packages/beacon-node/test/spec/presets/fast_confirmation.test.ts @@ -691,7 +691,13 @@ const fastConfirmationTest = // is_one_confirmed cases (new in v1.7.0-alpha.12, present in electra + fulu) currently // fail. Unskip once the FCR is reworked. name.includes("is_one_confirmed_fails_large_validator_slashed") || - name.includes("is_one_confirmed_fails_recently_activated_validator_voting_in_empty_slot"), + name.includes("is_one_confirmed_fails_recently_activated_validator_voting_in_empty_slot") || + // This case (new in v1.7.0-alpha.13, consensus-specs #5449) deposits a validator, but the + // vectors are generated with bls_setting=2 so the deposit carries a stub signature that + // only the pyspec BLS stub accepts. Lodestar verifies the deposit proof of possession + // inside processPendingDeposits, so the validator is never onboarded and the state root + // diverges once the pending deposit is applied. + name.includes("is_one_confirmed_passes_with_new_validator_activated_in_head_state"), }, }; }; diff --git a/packages/beacon-node/test/spec/presets/operations.test.ts b/packages/beacon-node/test/spec/presets/operations.test.ts index 30f11711aec8..1c765d822866 100644 --- a/packages/beacon-node/test/spec/presets/operations.test.ts +++ b/packages/beacon-node/test/spec/presets/operations.test.ts @@ -1,6 +1,6 @@ import path from "node:path"; import {getConfig} from "@lodestar/config/test-utils"; -import {ACTIVE_PRESET, ForkName} from "@lodestar/params"; +import {ACTIVE_PRESET, ForkName, ForkSeq} from "@lodestar/params"; import {InputType} from "@lodestar/spec-test-util"; import { BeaconStateAllForks, @@ -38,7 +38,12 @@ const syncAggregate: BlockProcessFn = ( const operationFns: Record> = { attestation: (state, testCase: {attestation: phase0.Attestation}) => { const fork = state.config.getForkSeq(state.slot); - blockFns.processAttestations(fork, state, [testCase.attestation]); + blockFns.processAttestations( + fork, + state, + [testCase.attestation], + fork >= ForkSeq.gloas ? (state as CachedBeaconStateGloas).latestExecutionPayloadBid.slot : null + ); }, attester_slashing: (state, testCase: BaseSpecTest & {attester_slashing: AttesterSlashing}) => { diff --git a/packages/beacon-node/test/spec/utils/specTestIterator.ts b/packages/beacon-node/test/spec/utils/specTestIterator.ts index d412e73fb493..4e1d5deade2a 100644 --- a/packages/beacon-node/test/spec/utils/specTestIterator.ts +++ b/packages/beacon-node/test/spec/utils/specTestIterator.ts @@ -84,6 +84,10 @@ export const defaultSkipOpts: SkipOpts = { // New test suite added in v1.7.0-alpha.8 (consensus-specs #5206); gloas PTC fork choice // handling is not yet implemented in Lodestar. /^gloas\/fork_choice\/on_payload_attestation_message\/.*$/, + // TODO-GLOAS: re-enable after the gloas should_apply_proposer_boost rule is implemented. + // New test suite added in v1.7.0-alpha.13 (consensus-specs #5441); Lodestar still applies + // the pre-gloas proposer boost, so the head weight differs by the boost amount. + /^gloas\/fork_choice\/should_apply_proposer_boost\/.*$/, // TODO GLOAS: enable this after gloas fork choice is ready /^gloas\/fork_choice_compliance\/.*/, ], @@ -93,7 +97,8 @@ export const defaultSkipOpts: SkipOpts = { // TODO GLOAS: Proposer-boost dependent-root gate uses stale cached head across epoch-boundary ticks; // boost wrongly denied. Fails identically on every pre-gloas fork. // Enable this after https://github.com/ChainSafe/lodestar/issues/9666 is resolved - /fork_choice_compliance\/block_tree_test\/pyspec_tests\/block_tree_test_16_201284350_1$/, + // The case name embeds the generation seed, so it changes whenever comptests are regenerated. + /fork_choice_compliance\/block_tree_test\/pyspec_tests\/block_tree_test_17_381675768_1$/, ], // TODO GLOAS: Investigate why networking tests are failing since alpha.5 skippedRunners: ["networking"], diff --git a/packages/config/test/e2e/ensure-config-is-synced.test.ts b/packages/config/test/e2e/ensure-config-is-synced.test.ts index 946b4e7456eb..62939f95bc7b 100644 --- a/packages/config/test/e2e/ensure-config-is-synced.test.ts +++ b/packages/config/test/e2e/ensure-config-is-synced.test.ts @@ -22,6 +22,7 @@ const ignoredRemoteConfigFields: (keyof ChainConfig)[] = [ "PROPOSER_INCLUSION_LIST_CUTOFF_BPS" as keyof ChainConfig, "MAX_REQUEST_INCLUSION_LIST" as keyof ChainConfig, "MAX_BYTES_PER_INCLUSION_LIST" as keyof ChainConfig, + "MIN_SLOTS_FOR_INCLUSION_LISTS_REQUESTS" as keyof ChainConfig, // Networking params that may be in presets instead of chainConfig "ATTESTATION_SUBNET_COUNT" as keyof ChainConfig, "ATTESTATION_SUBNET_EXTRA_BITS" as keyof ChainConfig, diff --git a/packages/state-transition/src/block/index.ts b/packages/state-transition/src/block/index.ts index ca5114339f01..2f6cffccfb5f 100644 --- a/packages/state-transition/src/block/index.ts +++ b/packages/state-transition/src/block/index.ts @@ -1,5 +1,5 @@ import {ForkPostGloas, ForkSeq} from "@lodestar/params"; -import {BeaconBlock, BlindedBeaconBlock, altair, capella} from "@lodestar/types"; +import {BeaconBlock, BlindedBeaconBlock, Slot, altair, capella} from "@lodestar/types"; import {BeaconStateTransitionMetrics} from "../metrics.js"; import { CachedBeaconStateAllForks, @@ -86,8 +86,9 @@ export function processBlock( processExecutionPayload(fork, state as CachedBeaconStateBellatrix, block.body, externalData); } + let parentSlot: Slot | null = null; if (fork >= ForkSeq.gloas) { - processExecutionPayloadBid( + parentSlot = processExecutionPayloadBid( state as CachedBeaconStateGloas, (block as BeaconBlock).body.signedExecutionPayloadBid ); @@ -95,7 +96,7 @@ export function processBlock( processRandao(state, block, verifySignatures); processEth1Data(state, block.body.eth1Data); - processOperations(fork, state, block.body, opts, metrics); + processOperations(fork, state, block.body, parentSlot, opts, metrics); if (fork >= ForkSeq.altair) { processSyncAggregate(state, block as altair.BeaconBlock, verifySignatures); } diff --git a/packages/state-transition/src/block/processAttestations.ts b/packages/state-transition/src/block/processAttestations.ts index b603b81c562a..01d237888575 100644 --- a/packages/state-transition/src/block/processAttestations.ts +++ b/packages/state-transition/src/block/processAttestations.ts @@ -1,5 +1,5 @@ import {ForkSeq} from "@lodestar/params"; -import {Attestation} from "@lodestar/types"; +import {Attestation, Slot} from "@lodestar/types"; import {BeaconStateTransitionMetrics} from "../metrics.js"; import {CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStatePhase0} from "../types.js"; import {processAttestationPhase0} from "./processAttestationPhase0.js"; @@ -12,6 +12,7 @@ export function processAttestations( fork: ForkSeq, state: CachedBeaconStateAllForks, attestations: Attestation[], + parentSlot: Slot | null, verifySignatures = true, metrics?: BeaconStateTransitionMetrics | null ): void { @@ -20,6 +21,13 @@ export function processAttestations( processAttestationPhase0(state as CachedBeaconStatePhase0, attestation, verifySignatures); } } else { - processAttestationsAltair(fork, state as CachedBeaconStateAltair, attestations, verifySignatures, metrics); + processAttestationsAltair( + fork, + state as CachedBeaconStateAltair, + attestations, + parentSlot, + verifySignatures, + metrics + ); } } diff --git a/packages/state-transition/src/block/processAttestationsAltair.ts b/packages/state-transition/src/block/processAttestationsAltair.ts index 5622be01b776..050c826d99c1 100644 --- a/packages/state-transition/src/block/processAttestationsAltair.ts +++ b/packages/state-transition/src/block/processAttestationsAltair.ts @@ -14,7 +14,7 @@ import { TIMELY_TARGET_WEIGHT, WEIGHT_DENOMINATOR, } from "@lodestar/params"; -import {Attestation, Epoch, phase0} from "@lodestar/types"; +import {Attestation, Epoch, Slot, phase0} from "@lodestar/types"; import {byteArrayEquals, intSqrt} from "@lodestar/utils"; import {BeaconStateTransitionMetrics} from "../metrics.js"; import {getAttestationWithIndicesSignatureSet} from "../signatureSets/indexedAttestation.js"; @@ -37,6 +37,7 @@ export function processAttestationsAltair( fork: ForkSeq, state: CachedBeaconStateAltair | CachedBeaconStateGloas, attestations: Attestation[], + parentSlot: Slot | null, verifySignature = true, metrics?: BeaconStateTransitionMetrics | null ): void { @@ -82,7 +83,8 @@ export function processAttestationsAltair( stateSlot - data.slot, epochCtx.epoch, rootCache, - fork >= ForkSeq.gloas ? (state as CachedBeaconStateGloas).executionPayloadAvailability : null + fork >= ForkSeq.gloas ? (state as CachedBeaconStateGloas).executionPayloadAvailability : null, + parentSlot ); // For each participant, update their participation @@ -179,7 +181,8 @@ export function getAttestationParticipationStatus( inclusionDelay: number, currentEpoch: Epoch, rootCache: RootCache, - executionPayloadAvailability: BitArray | null + executionPayloadAvailability: BitArray | null, + parentSlot: Slot | null ): {flags: number; isSameSlotAttestation: boolean} { const justifiedCheckpoint = data.target.epoch === currentEpoch ? rootCache.currentJustifiedCheckpoint : rootCache.previousJustifiedCheckpoint; @@ -221,13 +224,16 @@ export function getAttestationParticipationStatus( if (executionPayloadAvailability === null) { throw new Error("Must supply executionPayloadAvailability post-gloas"); } + if (parentSlot === null) { + throw new Error("Must supply parentSlot post-gloas"); + } if (data.index !== 0 && data.index !== 1) { throw new Error(`data index must be 0 or 1 index=${data.index}`); } isMatchingPayload = - Boolean(data.index) === executionPayloadAvailability.get(data.slot % SLOTS_PER_HISTORICAL_ROOT); + Boolean(data.index) === executionPayloadAvailability.get(parentSlot % SLOTS_PER_HISTORICAL_ROOT); } isMatchingHead = isMatchingHead && isMatchingPayload; diff --git a/packages/state-transition/src/block/processExecutionPayloadBid.ts b/packages/state-transition/src/block/processExecutionPayloadBid.ts index 2ccf86c536ea..ddc196a787e0 100644 --- a/packages/state-transition/src/block/processExecutionPayloadBid.ts +++ b/packages/state-transition/src/block/processExecutionPayloadBid.ts @@ -1,6 +1,6 @@ import {PublicKey, Signature, verify} from "@chainsafe/blst"; import {BUILDER_INDEX_SELF_BUILD, GENESIS_SLOT, PAYLOAD_BUILDER_VERSION, SLOTS_PER_EPOCH} from "@lodestar/params"; -import {gloas, ssz} from "@lodestar/types"; +import {Slot, gloas, ssz} from "@lodestar/types"; import {byteArrayEquals, toHex, toRootHex} from "@lodestar/utils"; import {G2_POINT_AT_INFINITY} from "../constants/constants.js"; import {getExecutionPayloadBidSigningRoot} from "../signatureSets/executionPayloadBid.js"; @@ -11,7 +11,7 @@ import {getBlockRootAtSlot, getCurrentEpoch, getRandaoMix} from "../util/index.j export function processExecutionPayloadBid( state: CachedBeaconStateGloas, signedBid: gloas.SignedExecutionPayloadBid -): void { +): Slot { const bid = signedBid.message; const {builderIndex, value: amount} = bid; @@ -99,7 +99,10 @@ export function processExecutionPayloadBid( state.builderPendingPayments.set(SLOTS_PER_EPOCH + (bid.slot % SLOTS_PER_EPOCH), pendingPaymentView); } + const parentSlot = state.latestExecutionPayloadBid.slot; state.latestExecutionPayloadBid = ssz.gloas.ExecutionPayloadBid.toViewDU(bid); + + return parentSlot; } function verifyExecutionPayloadBidSignature( diff --git a/packages/state-transition/src/block/processOperations.ts b/packages/state-transition/src/block/processOperations.ts index 06f3137e6eef..0f41ece3cb56 100644 --- a/packages/state-transition/src/block/processOperations.ts +++ b/packages/state-transition/src/block/processOperations.ts @@ -7,7 +7,7 @@ import { MAX_PROPOSER_SLASHINGS, MAX_VOLUNTARY_EXITS, } from "@lodestar/params"; -import {BeaconBlockBody, capella, electra, gloas} from "@lodestar/types"; +import {BeaconBlockBody, Slot, capella, electra, gloas} from "@lodestar/types"; import {BeaconStateTransitionMetrics} from "../metrics.js"; import { CachedBeaconStateAllForks, @@ -44,6 +44,7 @@ export function processOperations( fork: ForkSeq, state: CachedBeaconStateAllForks, body: BeaconBlockBody, + parentSlot: Slot | null, opts: ProcessBlockOpts = {verifySignatures: true}, metrics?: BeaconStateTransitionMetrics | null ): void { @@ -67,7 +68,7 @@ export function processOperations( processAttesterSlashing(fork, state, attesterSlashing, opts.verifySignatures); } - processAttestations(fork, state, body.attestations, opts.verifySignatures, metrics); + processAttestations(fork, state, body.attestations, parentSlot, opts.verifySignatures, metrics); for (const deposit of body.deposits) { processDeposit(fork, state, deposit); diff --git a/packages/state-transition/src/rewards/blockRewards.ts b/packages/state-transition/src/rewards/blockRewards.ts index d455595aae33..e19773d9ca1a 100644 --- a/packages/state-transition/src/rewards/blockRewards.ts +++ b/packages/state-transition/src/rewards/blockRewards.ts @@ -4,11 +4,17 @@ import { WHISTLEBLOWER_REWARD_QUOTIENT, WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA, isForkPostElectra, + isForkPostGloas, } from "@lodestar/params"; -import {BeaconBlock, altair, phase0, rewards} from "@lodestar/types"; +import {BeaconBlock, Slot, altair, phase0, rewards} from "@lodestar/types"; import {processAttestationsAltair} from "../block/processAttestationsAltair.js"; import {RewardCache} from "../cache/rewardCache.js"; -import {CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStatePhase0} from "../cache/stateCache.js"; +import { + CachedBeaconStateAllForks, + CachedBeaconStateAltair, + CachedBeaconStateGloas, + CachedBeaconStatePhase0, +} from "../cache/stateCache.js"; import {getAttesterSlashableIndices} from "../util/attestation.js"; type SubRewardValue = number; // All reward values should be integer @@ -36,10 +42,18 @@ export async function computeBlockRewards( let syncAggregateReward = cachedSyncAggregateReward; if (blockAttestationReward === 0) { + const parentSlot = isForkPostGloas(fork) + ? (preState as CachedBeaconStateGloas).latestExecutionPayloadBid.slot + : null; blockAttestationReward = fork === ForkName.phase0 ? computeBlockAttestationRewardPhase0(block as phase0.BeaconBlock, preState as CachedBeaconStatePhase0) - : computeBlockAttestationRewardAltair(config, block as altair.BeaconBlock, preState as CachedBeaconStateAltair); + : computeBlockAttestationRewardAltair( + config, + block as altair.BeaconBlock, + preState as CachedBeaconStateAltair, + parentSlot + ); } if (syncAggregateReward === 0) { @@ -79,12 +93,13 @@ function computeBlockAttestationRewardPhase0( function computeBlockAttestationRewardAltair( config: BeaconConfig, block: altair.BeaconBlock, - preState: CachedBeaconStateAltair + preState: CachedBeaconStateAltair, + parentSlot: Slot | null ): SubRewardValue { const fork = config.getForkSeq(block.slot); const {attestations} = block.body; - processAttestationsAltair(fork, preState, attestations, false); + processAttestationsAltair(fork, preState, attestations, parentSlot, false); return preState.proposerRewards.attestations; } diff --git a/packages/state-transition/src/slot/upgradeStateToAltair.ts b/packages/state-transition/src/slot/upgradeStateToAltair.ts index a7d5e35339de..a3f305e5d31e 100644 --- a/packages/state-transition/src/slot/upgradeStateToAltair.ts +++ b/packages/state-transition/src/slot/upgradeStateToAltair.ts @@ -137,6 +137,7 @@ function translateParticipation( attestation.inclusionDelay, epochCtx.epoch, rootCache, + null, null ); diff --git a/packages/state-transition/test/perf/block/processAttestation.test.ts b/packages/state-transition/test/perf/block/processAttestation.test.ts index 733c9891c3af..f52e29ce39fa 100644 --- a/packages/state-transition/test/perf/block/processAttestation.test.ts +++ b/packages/state-transition/test/perf/block/processAttestation.test.ts @@ -76,6 +76,7 @@ describe("altair processAttestation", () => { state.config.getForkSeq(state.slot), state as CachedBeaconStateAltair, attestations, + null, false ); state.commit(); diff --git a/spec-tests-version.json b/spec-tests-version.json index a4142de08a75..91446f543c7c 100644 --- a/spec-tests-version.json +++ b/spec-tests-version.json @@ -1,6 +1,6 @@ { "ethereumConsensusSpecsTests": { - "specVersion": "v1.7.0-alpha.12", + "specVersion": "v1.7.0-alpha.13", "specTestsRepoUrl": "https://github.com/ethereum/consensus-specs", "outputDirBase": "spec-tests", "testsToDownload": [ diff --git a/specrefs/.ethspecify.yml b/specrefs/.ethspecify.yml index 6333ecd07e0b..be5a129569ad 100644 --- a/specrefs/.ethspecify.yml +++ b/specrefs/.ethspecify.yml @@ -1,4 +1,4 @@ -version: v1.7.0-alpha.12 +version: v1.7.0-alpha.13 style: full specrefs: @@ -30,20 +30,7 @@ exceptions: - PAYLOAD_STATUS_NOT_VALIDATED#bellatrix - PAYLOAD_STATUS_VALID#bellatrix - # deneb - - BLS_MODULUS#deneb - - BYTES_PER_COMMITMENT#deneb - - BYTES_PER_PROOF#deneb - - FIAT_SHAMIR_PROTOCOL_DOMAIN#deneb - - G1_POINT_AT_INFINITY#deneb - - KZG_ENDIANNESS#deneb - - KZG_SETUP_G2_LENGTH#deneb - - KZG_SETUP_G2_MONOMIAL#deneb - - PRIMITIVE_ROOT_OF_UNITY#deneb - - RANDOM_CHALLENGE_KZG_BATCH_DOMAIN#deneb - # fulu - - RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN#fulu - UINT256_MAX#fulu # gloas @@ -247,33 +234,10 @@ exceptions: - validate_bls_to_execution_change_gossip#capella # deneb - - bit_reversal_permutation#deneb - - blob_to_kzg_commitment#deneb - - blob_to_polynomial#deneb - - bls_field_to_bytes#deneb - - bytes_to_bls_field#deneb - - bytes_to_kzg_commitment#deneb - - bytes_to_kzg_proof#deneb - - compute_blob_kzg_proof#deneb - - compute_challenge#deneb - compute_fork_version#deneb - - compute_kzg_proof#deneb - - compute_kzg_proof_impl#deneb - - compute_powers#deneb - - compute_quotient_eval_within_domain#deneb - - compute_roots_of_unity#deneb - - evaluate_polynomial_in_evaluation_form#deneb - - g1_lincomb#deneb - get_lc_execution_root#deneb - - hash_to_bls_field#deneb - - is_power_of_two#deneb - - reverse_bits#deneb - - validate_kzg_g1#deneb - - verify_blob_kzg_proof#deneb - - verify_blob_kzg_proof_batch#deneb - - verify_kzg_proof#deneb - - verify_kzg_proof_batch#deneb - - verify_kzg_proof_impl#deneb + - is_current_or_previous_epoch#deneb + - is_within_epoch#deneb - validate_beacon_aggregate_and_proof_gossip#deneb - validate_beacon_attestation_gossip#deneb - validate_beacon_block_gossip#deneb @@ -303,32 +267,8 @@ exceptions: - validate_blob_sidecar_gossip#electra # fulu - - _fft_field#fulu - - add_polynomialcoeff#fulu - - cell_to_coset_evals#fulu - - compute_cells#fulu - - compute_cells_and_kzg_proofs#fulu - - compute_cells_and_kzg_proofs_polynomialcoeff#fulu - compute_fork_version#fulu - - compute_kzg_proof_multi_impl#fulu - - compute_verify_cell_kzg_proof_batch_challenge#fulu - - construct_vanishing_polynomial#fulu - - coset_evals_to_cell#fulu - - coset_fft_field#fulu - - coset_for_cell#fulu - - coset_shift_for_cell#fulu - - divide_polynomialcoeff#fulu - - evaluate_polynomialcoeff#fulu - - fft_field#fulu - get_beacon_proposer_indices#fulu - - interpolate_polynomialcoeff#fulu - - multiply_polynomialcoeff#fulu - - polynomial_eval_to_coeff#fulu - - recover_cells_and_kzg_proofs#fulu - - recover_polynomialcoeff#fulu - - vanishing_polynomialcoeff#fulu - - verify_cell_kzg_proof_batch#fulu - - verify_cell_kzg_proof_batch_impl#fulu - verify_partial_data_column_header_inclusion_proof#fulu - verify_partial_data_column_sidecar_kzg_proofs#fulu - validate_beacon_block_gossip#fulu @@ -368,6 +308,7 @@ exceptions: - get_weight#gloas - has_compounding_withdrawal_credential#gloas - is_ancestor#gloas + - is_bid_compatible_with_head#gloas - is_head_late#gloas - is_parent_node_full#gloas - is_previous_slot_payload_decision#gloas @@ -499,6 +440,7 @@ exceptions: - INCLUSION_LIST_DUE_BPS#heze - MAX_BYTES_PER_INCLUSION_LIST#heze - MAX_REQUEST_INCLUSION_LIST#heze + - MIN_SLOTS_FOR_INCLUSION_LISTS_REQUESTS#heze custom_types: # phase0 @@ -513,7 +455,6 @@ exceptions: # fulu - CellIndex#fulu - - CommitmentIndex#fulu # gloas - ExecutionBranch#gloas diff --git a/specrefs/configs.yml b/specrefs/configs.yml index 47fdb0f91e7d..9e7dddc5b55c 100644 --- a/specrefs/configs.yml +++ b/specrefs/configs.yml @@ -3,8 +3,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "AGGREGATE_DUE_BPS:" spec: | - - AGGREGATE_DUE_BPS: uint64 = 6667 + + AGGREGATE_DUE_BPS: Uint64 = 6667 - name: AGGREGATE_DUE_BPS_GLOAS#gloas @@ -12,8 +12,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "AGGREGATE_DUE_BPS_GLOAS:" spec: | - - AGGREGATE_DUE_BPS_GLOAS: uint64 = 5000 + + AGGREGATE_DUE_BPS_GLOAS: Uint64 = 5000 - name: ALTAIR_FORK_EPOCH#altair @@ -40,8 +40,8 @@ search: '^\s+ATTESTATION_DUE_BPS:' regex: true spec: | - - ATTESTATION_DUE_BPS: uint64 = 3333 + + ATTESTATION_DUE_BPS: Uint64 = 3333 - name: ATTESTATION_DUE_BPS_GLOAS#gloas @@ -49,8 +49,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "ATTESTATION_DUE_BPS_GLOAS:" spec: | - - ATTESTATION_DUE_BPS_GLOAS: uint64 = 2500 + + ATTESTATION_DUE_BPS_GLOAS: Uint64 = 2500 - name: ATTESTATION_PROPAGATION_SLOT_RANGE#phase0 @@ -58,8 +58,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "ATTESTATION_PROPAGATION_SLOT_RANGE:" spec: | - - ATTESTATION_PROPAGATION_SLOT_RANGE = 32 + + ATTESTATION_PROPAGATION_SLOT_RANGE: Slot = 32 - name: ATTESTATION_SUBNET_COUNT#phase0 @@ -67,8 +67,8 @@ - file: packages/params/src/index.ts search: export const ATTESTATION_SUBNET_COUNT = spec: | - - ATTESTATION_SUBNET_COUNT = 64 + + ATTESTATION_SUBNET_COUNT: Uint64 = 64 - name: ATTESTATION_SUBNET_EXTRA_BITS#phase0 @@ -76,8 +76,8 @@ - file: packages/params/src/index.ts search: export const ATTESTATION_SUBNET_EXTRA_BITS = spec: | - - ATTESTATION_SUBNET_EXTRA_BITS = 0 + + ATTESTATION_SUBNET_EXTRA_BITS: Uint64 = 0 - name: BALANCE_PER_ADDITIONAL_CUSTODY_GROUP#fulu @@ -130,8 +130,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "BLOB_SIDECAR_SUBNET_COUNT:" spec: | - - BLOB_SIDECAR_SUBNET_COUNT = 6 + + BLOB_SIDECAR_SUBNET_COUNT: Uint64 = 6 - name: BLOB_SIDECAR_SUBNET_COUNT_ELECTRA#electra @@ -139,8 +139,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "BLOB_SIDECAR_SUBNET_COUNT_ELECTRA:" spec: | - - BLOB_SIDECAR_SUBNET_COUNT_ELECTRA = 9 + + BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: Uint64 = 9 - name: CAPELLA_FORK_EPOCH#capella @@ -167,8 +167,8 @@ search: '^\s+CHURN_LIMIT_QUOTIENT:' regex: true spec: | - - CHURN_LIMIT_QUOTIENT: uint64 = 65536 + + CHURN_LIMIT_QUOTIENT: Uint64 = 65536 - name: CHURN_LIMIT_QUOTIENT_GLOAS#gloas @@ -176,15 +176,15 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "CHURN_LIMIT_QUOTIENT_GLOAS:" spec: | - - CHURN_LIMIT_QUOTIENT_GLOAS: uint64 = 32768 + + CHURN_LIMIT_QUOTIENT_GLOAS: Uint64 = 32768 - name: CONFIRMATION_BYZANTINE_THRESHOLD#phase0 sources: [] spec: | - - CONFIRMATION_BYZANTINE_THRESHOLD: uint64 = 25 + + CONFIRMATION_BYZANTINE_THRESHOLD: Uint64 = 25 - name: CONSOLIDATION_CHURN_LIMIT_QUOTIENT#gloas @@ -192,8 +192,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "CONSOLIDATION_CHURN_LIMIT_QUOTIENT:" spec: | - - CONSOLIDATION_CHURN_LIMIT_QUOTIENT: uint64 = 65536 + + CONSOLIDATION_CHURN_LIMIT_QUOTIENT: Uint64 = 65536 - name: CONTRIBUTION_DUE_BPS#altair @@ -201,8 +201,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "CONTRIBUTION_DUE_BPS:" spec: | - - CONTRIBUTION_DUE_BPS: uint64 = 6667 + + CONTRIBUTION_DUE_BPS: Uint64 = 6667 - name: CONTRIBUTION_DUE_BPS_GLOAS#gloas @@ -210,8 +210,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "CONTRIBUTION_DUE_BPS_GLOAS:" spec: | - - CONTRIBUTION_DUE_BPS_GLOAS: uint64 = 5000 + + CONTRIBUTION_DUE_BPS_GLOAS: Uint64 = 5000 - name: CUSTODY_REQUIREMENT#fulu @@ -220,8 +220,8 @@ search: '^\s+CUSTODY_REQUIREMENT:' regex: true spec: | - - CUSTODY_REQUIREMENT: uint64 = 4 + + CUSTODY_REQUIREMENT: Uint64 = 4 - name: DATA_COLUMN_SIDECAR_SUBNET_COUNT#fulu @@ -229,8 +229,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "DATA_COLUMN_SIDECAR_SUBNET_COUNT:" spec: | - - DATA_COLUMN_SIDECAR_SUBNET_COUNT: uint64 = 128 + + DATA_COLUMN_SIDECAR_SUBNET_COUNT: Uint64 = 128 - name: DENEB_FORK_EPOCH#deneb @@ -251,6 +251,33 @@ DENEB_FORK_VERSION: Version = '0x04000000' +- name: DEPOSIT_CHAIN_ID#phase0 + sources: + - file: packages/config/src/chainConfig/configs/mainnet.ts + search: "DEPOSIT_CHAIN_ID:" + spec: | + + DEPOSIT_CHAIN_ID: Uint64 = 1 + + +- name: DEPOSIT_CONTRACT_ADDRESS#phase0 + sources: + - file: packages/config/src/chainConfig/configs/mainnet.ts + search: "DEPOSIT_CONTRACT_ADDRESS:" + spec: | + + DEPOSIT_CONTRACT_ADDRESS: ExecutionAddress = '0x00000000219ab540356cBB839Cbe05303d7705Fa' + + +- name: DEPOSIT_NETWORK_ID#phase0 + sources: + - file: packages/config/src/chainConfig/configs/mainnet.ts + search: "DEPOSIT_NETWORK_ID:" + spec: | + + DEPOSIT_NETWORK_ID: Uint64 = 1 + + - name: EJECTION_BALANCE#phase0 sources: - file: packages/config/src/chainConfig/configs/mainnet.ts @@ -283,8 +310,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "EPOCHS_PER_SUBNET_SUBSCRIPTION:" spec: | - - EPOCHS_PER_SUBNET_SUBSCRIPTION = 256 + + EPOCHS_PER_SUBNET_SUBSCRIPTION: Epoch = 256 - name: ETH1_FOLLOW_DISTANCE#phase0 @@ -292,8 +319,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "ETH1_FOLLOW_DISTANCE:" spec: | - - ETH1_FOLLOW_DISTANCE: uint64 = 2048 + + ETH1_FOLLOW_DISTANCE: Uint64 = 2048 - name: FULU_FORK_EPOCH#fulu @@ -319,8 +346,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "GENESIS_DELAY:" spec: | - - GENESIS_DELAY: uint64 = 604800 + + GENESIS_DELAY: Uint64 = 604800 - name: GENESIS_FORK_VERSION#phase0 @@ -369,8 +396,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "INACTIVITY_SCORE_BIAS:" spec: | - - INACTIVITY_SCORE_BIAS: uint64 = 4 + + INACTIVITY_SCORE_BIAS: Uint64 = 4 - name: INACTIVITY_SCORE_RECOVERY_RATE#altair @@ -378,15 +405,15 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "INACTIVITY_SCORE_RECOVERY_RATE:" spec: | - - INACTIVITY_SCORE_RECOVERY_RATE: uint64 = 16 + + INACTIVITY_SCORE_RECOVERY_RATE: Uint64 = 16 - name: INCLUSION_LIST_DUE_BPS#heze sources: [] spec: | - - INCLUSION_LIST_DUE_BPS: uint64 = 6667 + + INCLUSION_LIST_DUE_BPS: Uint64 = 6667 - name: MAXIMUM_GOSSIP_CLOCK_DISPARITY#phase0 @@ -394,8 +421,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAXIMUM_GOSSIP_CLOCK_DISPARITY:" spec: | - - MAXIMUM_GOSSIP_CLOCK_DISPARITY = 500 + + MAXIMUM_GOSSIP_CLOCK_DISPARITY: Uint64 = 500 - name: MAX_BLOBS_PER_BLOCK#deneb @@ -403,8 +430,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_BLOBS_PER_BLOCK: 6" spec: | - - MAX_BLOBS_PER_BLOCK: uint64 = 6 + + MAX_BLOBS_PER_BLOCK: Uint64 = 6 - name: MAX_BLOBS_PER_BLOCK_ELECTRA#electra @@ -412,15 +439,15 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_BLOBS_PER_BLOCK_ELECTRA:" spec: | - - MAX_BLOBS_PER_BLOCK_ELECTRA: uint64 = 9 + + MAX_BLOBS_PER_BLOCK_ELECTRA: Uint64 = 9 - name: MAX_BYTES_PER_INCLUSION_LIST#heze sources: [] spec: | - - MAX_BYTES_PER_INCLUSION_LIST = 8192 + + MAX_BYTES_PER_INCLUSION_LIST: Uint64 = 8192 - name: MAX_PAYLOAD_SIZE#phase0 @@ -428,8 +455,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_PAYLOAD_SIZE:" spec: | - - MAX_PAYLOAD_SIZE = 10485760 + + MAX_PAYLOAD_SIZE: Uint64 = 10485760 - name: MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT#deneb @@ -437,8 +464,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT:" spec: | - - MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: uint64 = 8 + + MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: Uint64 = 8 - name: MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT_GLOAS#gloas @@ -464,8 +491,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_REQUEST_BLOCKS:" spec: | - - MAX_REQUEST_BLOCKS = 1024 + + MAX_REQUEST_BLOCKS: Uint64 = 1024 - name: MAX_REQUEST_BLOCKS_DENEB#deneb @@ -473,15 +500,15 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_REQUEST_BLOCKS_DENEB:" spec: | - - MAX_REQUEST_BLOCKS_DENEB = 128 + + MAX_REQUEST_BLOCKS_DENEB: Uint64 = 128 - name: MAX_REQUEST_INCLUSION_LIST#heze sources: [] spec: | - - MAX_REQUEST_INCLUSION_LIST = 16 + + MAX_REQUEST_INCLUSION_LIST: Uint64 = 16 - name: MAX_REQUEST_PAYLOADS#gloas @@ -489,8 +516,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MAX_REQUEST_PAYLOADS:" spec: | - - MAX_REQUEST_PAYLOADS = 128 + + MAX_REQUEST_PAYLOADS: Uint64 = 128 - name: MESSAGE_DOMAIN_INVALID_SNAPPY#phase0 @@ -516,8 +543,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_BUILDER_WITHDRAWABILITY_DELAY:" spec: | - - MIN_BUILDER_WITHDRAWABILITY_DELAY: uint64 = 64 + + MIN_BUILDER_WITHDRAWABILITY_DELAY: Epoch = 64 - name: MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS#deneb @@ -525,8 +552,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS:" spec: | - - MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS = 4096 + + MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: Epoch = 4096 - name: MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS#fulu @@ -534,8 +561,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS:" spec: | - - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: uint64 = 4096 + + MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: Epoch = 4096 - name: MIN_GENESIS_ACTIVE_VALIDATOR_COUNT#phase0 @@ -543,8 +570,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_GENESIS_ACTIVE_VALIDATOR_COUNT:" spec: | - - MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: uint64 = 16384 + + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: Uint64 = 16384 - name: MIN_GENESIS_TIME#phase0 @@ -552,8 +579,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_GENESIS_TIME:" spec: | - - MIN_GENESIS_TIME: uint64 = 1606824000 + + MIN_GENESIS_TIME: Uint64 = 1606824000 - name: MIN_PER_EPOCH_CHURN_LIMIT#phase0 @@ -561,8 +588,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_PER_EPOCH_CHURN_LIMIT:" spec: | - - MIN_PER_EPOCH_CHURN_LIMIT: uint64 = 4 + + MIN_PER_EPOCH_CHURN_LIMIT: Uint64 = 4 - name: MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA#electra @@ -574,13 +601,20 @@ MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: Gwei = 128000000000 +- name: MIN_SLOTS_FOR_INCLUSION_LISTS_REQUESTS#heze + sources: [] + spec: | + + MIN_SLOTS_FOR_INCLUSION_LISTS_REQUESTS: Slot = 1 + + - name: MIN_VALIDATOR_WITHDRAWABILITY_DELAY#phase0 sources: - file: packages/config/src/chainConfig/configs/mainnet.ts search: "MIN_VALIDATOR_WITHDRAWABILITY_DELAY:" spec: | - - MIN_VALIDATOR_WITHDRAWABILITY_DELAY: uint64 = 256 + + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: Epoch = 256 - name: NUMBER_OF_CUSTODY_GROUPS#fulu @@ -588,8 +622,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "NUMBER_OF_CUSTODY_GROUPS:" spec: | - - NUMBER_OF_CUSTODY_GROUPS: uint64 = 128 + + NUMBER_OF_CUSTODY_GROUPS: Uint64 = 128 - name: PAYLOAD_ATTESTATION_DUE_BPS#gloas @@ -597,8 +631,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "PAYLOAD_ATTESTATION_DUE_BPS:" spec: | - - PAYLOAD_ATTESTATION_DUE_BPS: uint64 = 7500 + + PAYLOAD_ATTESTATION_DUE_BPS: Uint64 = 7500 - name: PAYLOAD_DUE_BPS#gloas @@ -606,8 +640,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "PAYLOAD_DUE_BPS:" spec: | - - PAYLOAD_DUE_BPS: uint64 = 5000 + + PAYLOAD_DUE_BPS: Uint64 = 5000 - name: PROPOSER_REORG_CUTOFF_BPS#phase0 @@ -615,8 +649,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "PROPOSER_REORG_CUTOFF_BPS:" spec: | - - PROPOSER_REORG_CUTOFF_BPS: uint64 = 1667 + + PROPOSER_REORG_CUTOFF_BPS: Uint64 = 1667 - name: PROPOSER_SCORE_BOOST#phase0 @@ -624,8 +658,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "PROPOSER_SCORE_BOOST:" spec: | - - PROPOSER_SCORE_BOOST: uint64 = 40 + + PROPOSER_SCORE_BOOST: Uint64 = 40 - name: REORG_HEAD_WEIGHT_THRESHOLD#phase0 @@ -633,8 +667,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "REORG_HEAD_WEIGHT_THRESHOLD:" spec: | - - REORG_HEAD_WEIGHT_THRESHOLD: uint64 = 20 + + REORG_HEAD_WEIGHT_THRESHOLD: Uint64 = 20 - name: REORG_MAX_EPOCHS_SINCE_FINALIZATION#phase0 @@ -651,8 +685,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "REORG_PARENT_WEIGHT_THRESHOLD:" spec: | - - REORG_PARENT_WEIGHT_THRESHOLD: uint64 = 160 + + REORG_PARENT_WEIGHT_THRESHOLD: Uint64 = 160 - name: SAMPLES_PER_SLOT#fulu @@ -660,8 +694,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SAMPLES_PER_SLOT:" spec: | - - SAMPLES_PER_SLOT: uint64 = 8 + + SAMPLES_PER_SLOT: Uint64 = 8 - name: SECONDS_PER_ETH1_BLOCK#phase0 @@ -669,8 +703,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SECONDS_PER_ETH1_BLOCK:" spec: | - - SECONDS_PER_ETH1_BLOCK: uint64 = 14 + + SECONDS_PER_ETH1_BLOCK: Uint64 = 14 - name: SHARD_COMMITTEE_PERIOD#phase0 @@ -678,8 +712,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SHARD_COMMITTEE_PERIOD:" spec: | - - SHARD_COMMITTEE_PERIOD: uint64 = 256 + + SHARD_COMMITTEE_PERIOD: Epoch = 256 - name: SLOT_DURATION_MS#phase0 @@ -687,8 +721,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SLOT_DURATION_MS:" spec: | - - SLOT_DURATION_MS: uint64 = 12000 + + SLOT_DURATION_MS: Uint64 = 12000 - name: SUBNETS_PER_NODE#phase0 @@ -696,8 +730,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SUBNETS_PER_NODE:" spec: | - - SUBNETS_PER_NODE = 2 + + SUBNETS_PER_NODE: Uint64 = 2 - name: SYNC_MESSAGE_DUE_BPS#altair @@ -705,8 +739,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SYNC_MESSAGE_DUE_BPS:" spec: | - - SYNC_MESSAGE_DUE_BPS: uint64 = 3333 + + SYNC_MESSAGE_DUE_BPS: Uint64 = 3333 - name: SYNC_MESSAGE_DUE_BPS_GLOAS#gloas @@ -714,8 +748,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "SYNC_MESSAGE_DUE_BPS_GLOAS:" spec: | - - SYNC_MESSAGE_DUE_BPS_GLOAS: uint64 = 2500 + + SYNC_MESSAGE_DUE_BPS_GLOAS: Uint64 = 2500 - name: TERMINAL_BLOCK_HASH#bellatrix @@ -732,8 +766,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH:" spec: | - - TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH = 18446744073709551615 + + TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: Epoch = 18446744073709551615 - name: TERMINAL_TOTAL_DIFFICULTY#bellatrix @@ -741,8 +775,8 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "TERMINAL_TOTAL_DIFFICULTY:" spec: | - - TERMINAL_TOTAL_DIFFICULTY = 58750000000000000000000 + + TERMINAL_TOTAL_DIFFICULTY: Uint256 = 58750000000000000000000 - name: VALIDATOR_CUSTODY_REQUIREMENT#fulu @@ -750,6 +784,6 @@ - file: packages/config/src/chainConfig/configs/mainnet.ts search: "VALIDATOR_CUSTODY_REQUIREMENT:" spec: | - - VALIDATOR_CUSTODY_REQUIREMENT = 8 + + VALIDATOR_CUSTODY_REQUIREMENT: Uint64 = 8 diff --git a/specrefs/constants.yml b/specrefs/constants.yml index 90eb03fa256a..f2b3aeefd586 100644 --- a/specrefs/constants.yml +++ b/specrefs/constants.yml @@ -1,8 +1,8 @@ - name: ATTESTATION_TIMELINESS_INDEX#gloas sources: [] spec: | - - ATTESTATION_TIMELINESS_INDEX = 0 + + ATTESTATION_TIMELINESS_INDEX: Uint64 = 0 - name: BASE_REWARDS_PER_EPOCH#phase0 @@ -10,8 +10,8 @@ - file: packages/params/src/index.ts search: export const BASE_REWARDS_PER_EPOCH = spec: | - - BASE_REWARDS_PER_EPOCH: uint64 = 4 + + BASE_REWARDS_PER_EPOCH: Uint64 = 4 - name: BASIS_POINTS#phase0 @@ -19,15 +19,8 @@ - file: packages/params/src/index.ts search: export const BASIS_POINTS = spec: | - - BASIS_POINTS: uint64 = 10000 - - -- name: BLS_MODULUS#deneb - sources: [] - spec: | - - BLS_MODULUS = 52435875175126190479447740508185965837690552500527637822603658699938581184513 + + BASIS_POINTS: Uint64 = 10000 - name: BLS_WITHDRAWAL_PREFIX#phase0 @@ -62,8 +55,8 @@ - file: packages/params/src/index.ts search: export const BUILDER_INDEX_FLAG = spec: | - - BUILDER_INDEX_FLAG: uint64 = 2**40 + + BUILDER_INDEX_FLAG: Uint64 = 2**40 - name: BUILDER_INDEX_SELF_BUILD#gloas @@ -80,8 +73,8 @@ - file: packages/params/src/index.ts search: export const BUILDER_PAYMENT_THRESHOLD_DENOMINATOR = spec: | - - BUILDER_PAYMENT_THRESHOLD_DENOMINATOR: uint64 = 10 + + BUILDER_PAYMENT_THRESHOLD_DENOMINATOR: Uint64 = 10 - name: BUILDER_PAYMENT_THRESHOLD_NUMERATOR#gloas @@ -89,8 +82,8 @@ - file: packages/params/src/index.ts search: export const BUILDER_PAYMENT_THRESHOLD_NUMERATOR = spec: | - - BUILDER_PAYMENT_THRESHOLD_NUMERATOR: uint64 = 6 + + BUILDER_PAYMENT_THRESHOLD_NUMERATOR: Uint64 = 6 - name: BUILDER_WITHDRAWAL_PREFIX#gloas @@ -102,34 +95,20 @@ BUILDER_WITHDRAWAL_PREFIX: Bytes1 = '0xB0' -- name: BYTES_PER_COMMITMENT#deneb - sources: [] - spec: | - - BYTES_PER_COMMITMENT: uint64 = 48 - - - name: BYTES_PER_FIELD_ELEMENT#deneb sources: - file: packages/params/src/index.ts search: export const BYTES_PER_FIELD_ELEMENT = spec: | - - BYTES_PER_FIELD_ELEMENT: uint64 = 32 - - -- name: BYTES_PER_PROOF#deneb - sources: [] - spec: | - - BYTES_PER_PROOF: uint64 = 48 + + BYTES_PER_FIELD_ELEMENT: Uint64 = 32 - name: COMMITTEE_WEIGHT_ESTIMATION_ADJUSTMENT_FACTOR#phase0 sources: [] spec: | - - COMMITTEE_WEIGHT_ESTIMATION_ADJUSTMENT_FACTOR: uint64 = 5 + + COMMITTEE_WEIGHT_ESTIMATION_ADJUSTMENT_FACTOR: Uint64 = 5 - name: COMPOUNDING_WITHDRAWAL_PREFIX#electra @@ -155,8 +134,8 @@ - file: packages/params/src/index.ts search: export const DEPOSIT_CONTRACT_TREE_DEPTH = spec: | - - DEPOSIT_CONTRACT_TREE_DEPTH: uint64 = 2**5 + + DEPOSIT_CONTRACT_TREE_DEPTH: Uint64 = 2**5 - name: DEPOSIT_REQUEST_TYPE#electra @@ -345,8 +324,8 @@ - name: ETH_TO_GWEI#phase0 sources: [] spec: | - - ETH_TO_GWEI: uint64 = 10**9 + + ETH_TO_GWEI: Uint64 = 10**9 - name: FAR_FUTURE_EPOCH#phase0 @@ -358,27 +337,13 @@ FAR_FUTURE_EPOCH: Epoch = 2**64 - 1 -- name: FIAT_SHAMIR_PROTOCOL_DOMAIN#deneb - sources: [] - spec: | - - FIAT_SHAMIR_PROTOCOL_DOMAIN = b'FSBLOBVERIFY_V1_' - - - name: FULL_EXIT_REQUEST_AMOUNT#electra sources: - file: packages/params/src/index.ts search: export const FULL_EXIT_REQUEST_AMOUNT = spec: | - - FULL_EXIT_REQUEST_AMOUNT: uint64 = 0 - - -- name: G1_POINT_AT_INFINITY#deneb - sources: [] - spec: | - - G1_POINT_AT_INFINITY: Bytes48 = b'\xc0' + b'\x00' * 47 + + FULL_EXIT_REQUEST_AMOUNT: Gwei = 0 - name: G2_POINT_AT_INFINITY#altair @@ -413,29 +378,8 @@ - file: packages/params/src/index.ts search: export const JUSTIFICATION_BITS_LENGTH = spec: | - - JUSTIFICATION_BITS_LENGTH: uint64 = 4 - - -- name: KZG_ENDIANNESS#deneb - sources: [] - spec: | - - KZG_ENDIANNESS = 'big' - - -- name: KZG_SETUP_G2_LENGTH#deneb - sources: [] - spec: | - - KZG_SETUP_G2_LENGTH: uint64 = 65 - - -- name: KZG_SETUP_G2_MONOMIAL#deneb - sources: [] - spec: | - - KZG_SETUP_G2_MONOMIAL: Vector[G2Point, KZG_SETUP_G2_LENGTH] = ['0x93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8', '0xb5bfd7dd8cdeb128843bc287230af38926187075cbfbefa81009a2ce615ac53d2914e5870cb452d2afaaab24f3499f72185cbfee53492714734429b7b38608e23926c911cceceac9a36851477ba4c60b087041de621000edc98edada20c1def2', '0xb5337ba0ce5d37224290916e268e2060e5c14f3f9fc9e1ec3af5a958e7a0303122500ce18f1a4640bf66525bd10e763501fe986d86649d8d45143c08c3209db3411802c226e9fe9a55716ac4a0c14f9dcef9e70b2bb309553880dc5025eab3cc', '0xb3c1dcdc1f62046c786f0b82242ef283e7ed8f5626f72542aa2c7a40f14d9094dd1ebdbd7457ffdcdac45fd7da7e16c51200b06d791e5e43e257e45efdf0bd5b06cd2333beca2a3a84354eb48662d83aef5ecf4e67658c851c10b13d8d87c874', '0x954d91c7688983382609fca9e211e461f488a5971fd4e40d7e2892037268eacdfd495cfa0a7ed6eb0eb11ac3ae6f651716757e7526abe1e06c64649d80996fd3105c20c4c94bc2b22d97045356fe9d791f21ea6428ac48db6f9e68e30d875280', '0x88a6b6bb26c51cf9812260795523973bb90ce80f6820b6c9048ab366f0fb96e48437a7f7cb62aedf64b11eb4dfefebb0147608793133d32003cb1f2dc47b13b5ff45f1bb1b2408ea45770a08dbfaec60961acb8119c47b139a13b8641e2c9487', '0x85cd7be9728bd925d12f47fb04b32d9fad7cab88788b559f053e69ca18e463113ecc8bbb6dbfb024835f901b3a957d3108d6770fb26d4c8be0a9a619f6e3a4bf15cbfd48e61593490885f6cee30e4300c5f9cf5e1c08e60a2d5b023ee94fcad0', '0x80477dba360f04399821a48ca388c0fa81102dd15687fea792ee8c1114e00d1bc4839ad37ac58900a118d863723acfbe08126ea883be87f50e4eabe3b5e72f5d9e041db8d9b186409fd4df4a7dde38c0e0a3b1ae29b098e5697e7f110b6b27e4', '0xb7a6aec08715a9f8672a2b8c367e407be37e59514ac19dd4f0942a68007bba3923df22da48702c63c0d6b3efd3c2d04e0fe042d8b5a54d562f9f33afc4865dcbcc16e99029e25925580e87920c399e710d438ac1ce3a6dc9b0d76c064a01f6f7', '0xac1b001edcea02c8258aeffbf9203114c1c874ad88dae1184fadd7d94cd09053649efd0ca413400e6e9b5fa4eac33261000af88b6bd0d2abf877a4f0355d2fb4d6007adb181695201c5432e50b850b51b3969f893bddf82126c5a71b042b7686', '0x90043fda4de53fb364fab2c04be5296c215599105ecff0c12e4917c549257125775c29f2507124d15f56e30447f367db0596c33237242c02d83dfd058735f1e3c1ff99069af55773b6d51d32a68bf75763f59ec4ee7267932ae426522b8aaab6', '0xa8660ce853e9dc08271bf882e29cd53397d63b739584dda5263da4c7cc1878d0cf6f3e403557885f557e184700575fee016ee8542dec22c97befe1d10f414d22e84560741cdb3e74c30dda9b42eeaaf53e27822de2ee06e24e912bf764a9a533', '0x8fe3921a96d0d065e8aa8fce9aa42c8e1461ca0470688c137be89396dd05103606dab6cdd2a4591efd6addf72026c12e065da7be276dee27a7e30afa2bd81c18f1516e7f068f324d0bad9570b95f6bd02c727cd2343e26db0887c3e4e26dceda', '0x8ae1ad97dcb9c192c9a3933541b40447d1dc4eebf380151440bbaae1e120cc5cdf1bcea55180b128d8e180e3af623815191d063cc0d7a47d55fb7687b9d87040bf7bc1a7546b07c61db5ccf1841372d7c2fe4a5431ffff829f3c2eb590b0b710', '0x8c2fa96870a88150f7876c931e2d3cc2adeaaaf5c73ef5fa1cf9dfa0991ae4819f9321af7e916e5057d87338e630a2f21242c29d76963cf26035b548d2a63d8ad7bd6efefa01c1df502cbdfdfe0334fb21ceb9f686887440f713bf17a89b8081', '0xb9aa98e2f02bb616e22ee5dd74c7d1049321ac9214d093a738159850a1dbcc7138cb8d26ce09d8296368fd5b291d74fa17ac7cc1b80840fdd4ee35e111501e3fa8485b508baecda7c1ab7bd703872b7d64a2a40b3210b6a70e8a6ffe0e5127e3', '0x9292db67f8771cdc86854a3f614a73805bf3012b48f1541e704ea4015d2b6b9c9aaed36419769c87c49f9e3165f03edb159c23b3a49c4390951f78e1d9b0ad997129b17cdb57ea1a6638794c0cca7d239f229e589c5ae4f9fe6979f7f8cba1d7', '0x91cd9e86550f230d128664f7312591fee6a84c34f5fc7aed557bcf986a409a6de722c4330453a305f06911d2728626e611acfdf81284f77f60a3a1595053a9479964fd713117e27c0222cc679674b03bc8001501aaf9b506196c56de29429b46', '0xa9516b73f605cc31b89c68b7675dc451e6364595243d235339437f556cf22d745d4250c1376182273be2d99e02c10eee047410a43eff634d051aeb784e76cb3605d8e079b9eb6ad1957dfdf77e1cd32ce4a573c9dfcc207ca65af6eb187f6c3d', '0xa9667271f7d191935cc8ad59ef3ec50229945faea85bfdfb0d582090f524436b348aaa0183b16a6231c00332fdac2826125b8c857a2ed9ec66821cfe02b3a2279be2412441bc2e369b255eb98614e4be8490799c4df22f18d47d24ec70bba5f7', '0xa4371144d2aa44d70d3cb9789096d3aa411149a6f800cb46f506461ee8363c8724667974252f28aea61b6030c05930ac039c1ee64bb4bd56532a685cae182bf2ab935eee34718cffcb46cae214c77aaca11dbb1320faf23c47247db1da04d8dc', '0x89a7eb441892260b7e81168c386899cd84ffc4a2c5cad2eae0d1ab9e8b5524662e6f660fe3f8bfe4c92f60b060811bc605b14c5631d16709266886d7885a5eb5930097127ec6fb2ebbaf2df65909cf48f253b3d5e22ae48d3e9a2fd2b01f447e', '0x9648c42ca97665b5eccb49580d8532df05eb5a68db07f391a2340769b55119eaf4c52fe4f650c09250fa78a76c3a1e271799b8333cc2628e3d4b4a6a3e03da1f771ecf6516dd63236574a7864ff07e319a6f11f153406280d63af9e2b5713283', '0x9663bf6dd446ea7a90658ee458578d4196dc0b175ef7fcfa75f44d41670850774c2e46c5a6be132a2c072a3c0180a24f0305d1acac49d2d79878e5cda80c57feda3d01a6af12e78b5874e2a4b3717f11c97503b41a4474e2e95b179113726199', '0xb212aeb4814e0915b432711b317923ed2b09e076aaf558c3ae8ef83f9e15a83f9ea3f47805b2750ab9e8106cb4dc6ad003522c84b03dc02829978a097899c773f6fb31f7fe6b8f2d836d96580f216fec20158f1590c3e0d7850622e15194db05', '0x925f005059bf07e9ceccbe66c711b048e236ade775720d0fe479aebe6e23e8af281225ad18e62458dc1b03b42ad4ca290d4aa176260604a7aad0d9791337006fbdebe23746f8060d42876f45e4c83c3643931392fde1cd13ff8bddf8111ef974', '0x9553edb22b4330c568e156a59ef03b26f5c326424f830fe3e8c0b602f08c124730ffc40bc745bec1a22417adb22a1a960243a10565c2be3066bfdb841d1cd14c624cd06e0008f4beb83f972ce6182a303bee3fcbcabc6cfe48ec5ae4b7941bfc', '0x935f5a404f0a78bdcce709899eda0631169b366a669e9b58eacbbd86d7b5016d044b8dfc59ce7ed8de743ae16c2343b50e2f925e88ba6319e33c3fc76b314043abad7813677b4615c8a97eb83cc79de4fedf6ccbcfa4d4cbf759a5a84e4d9742', '0xa5b014ab936eb4be113204490e8b61cd38d71da0dec7215125bcd131bf3ab22d0a32ce645bca93e7b3637cf0c2db3d6601a0ddd330dc46f9fae82abe864ffc12d656c88eb50c20782e5bb6f75d18760666f43943abb644b881639083e122f557', '0x935b7298ae52862fa22bf03bfc1795b34c70b181679ae27de08a9f5b4b884f824ef1b276b7600efa0d2f1d79e4a470d51692fd565c5cf8343dd80e5d3336968fc21c09ba9348590f6206d4424eb229e767547daefa98bc3aa9f421158dee3f2a', '0x9830f92446e708a8f6b091cc3c38b653505414f8b6507504010a96ffda3bcf763d5331eb749301e2a1437f00e2415efb01b799ad4c03f4b02de077569626255ac1165f96ea408915d4cf7955047620da573e5c439671d1fa5c833fb11de7afe6', '0x840dcc44f673fff3e387af2bb41e89640f2a70bcd2b92544876daa92143f67c7512faf5f90a04b7191de01f3e2b1bde00622a20dc62ca23bbbfaa6ad220613deff43908382642d4d6a86999f662efd64b1df448b68c847cfa87630a3ffd2ec76', '0x92950c895ed54f7f876b2fda17ecc9c41b7accfbdd42c210cc5b475e0737a7279f558148531b5c916e310604a1de25a80940c94fe5389ae5d6a5e9c371be67bceea1877f5401725a6595bcf77ece60905151b6dfcb68b75ed2e708c73632f4fd', '0x8010246bf8e94c25fd029b346b5fbadb404ef6f44a58fd9dd75acf62433d8cc6db66974f139a76e0c26dddc1f329a88214dbb63276516cf325c7869e855d07e0852d622c332ac55609ba1ec9258c45746a2aeb1af0800141ee011da80af175d4', '0xb0f1bad257ebd187bdc3f37b23f33c6a5d6a8e1f2de586080d6ada19087b0e2bf23b79c1b6da1ee82271323f5bdf3e1b018586b54a5b92ab6a1a16bb3315190a3584a05e6c37d5ca1e05d702b9869e27f513472bcdd00f4d0502a107773097da', '0x9636d24f1ede773ce919f309448dd7ce023f424afd6b4b69cb98c2a988d849a283646dc3e469879daa1b1edae91ae41f009887518e7eb5578f88469321117303cd3ac2d7aee4d9cb5f82ab9ae3458e796dfe7c24284b05815acfcaa270ff22e2', '0xb373feb5d7012fd60578d7d00834c5c81df2a23d42794fed91aa9535a4771fde0341c4da882261785e0caca40bf83405143085e7f17e55b64f6c5c809680c20b050409bf3702c574769127c854d27388b144b05624a0e24a1cbcc4d08467005b', '0xb15680648949ce69f82526e9b67d9b55ce5c537dc6ab7f3089091a9a19a6b90df7656794f6edc87fb387d21573ffc847062623685931c2790a508cbc8c6b231dd2c34f4d37d4706237b1407673605a604bcf6a50cc0b1a2db20485e22b02c17e', '0x8817e46672d40c8f748081567b038a3165f87994788ec77ee8daea8587f5540df3422f9e120e94339be67f186f50952504cb44f61e30a5241f1827e501b2de53c4c64473bcc79ab887dd277f282fbfe47997a930dd140ac08b03efac88d81075', '0xa6e4ef6c1d1098f95aae119905f87eb49b909d17f9c41bcfe51127aa25fee20782ea884a7fdf7d5e9c245b5a5b32230b07e0dbf7c6743bf52ee20e2acc0b269422bd6cf3c07115df4aa85b11b2c16630a07c974492d9cdd0ec325a3fabd95044', '0x8634aa7c3d00e7f17150009698ce440d8e1b0f13042b624a722ace68ead870c3d2212fbee549a2c190e384d7d6ac37ce14ab962c299ea1218ef1b1489c98906c91323b94c587f1d205a6edd5e9d05b42d591c26494a6f6a029a2aadb5f8b6f67', '0x821a58092900bdb73decf48e13e7a5012a3f88b06288a97b855ef51306406e7d867d613d9ec738ebacfa6db344b677d21509d93f3b55c2ebf3a2f2a6356f875150554c6fff52e62e3e46f7859be971bf7dd9d5b3e1d799749c8a97c2e04325df', '0x8dba356577a3a388f782e90edb1a7f3619759f4de314ad5d95c7cc6e197211446819c4955f99c5fc67f79450d2934e3c09adefc91b724887e005c5190362245eec48ce117d0a94d6fa6db12eda4ba8dde608fbbd0051f54dcf3bb057adfb2493', '0xa32a690dc95c23ed9fb46443d9b7d4c2e27053a7fcc216d2b0020a8cf279729c46114d2cda5772fd60a97016a07d6c5a0a7eb085a18307d34194596f5b541cdf01b2ceb31d62d6b55515acfd2b9eec92b27d082fbc4dc59fc63b551eccdb8468', '0xa040f7f4be67eaf0a1d658a3175d65df21a7dbde99bfa893469b9b43b9d150fc2e333148b1cb88cfd0447d88fa1a501d126987e9fdccb2852ecf1ba907c2ca3d6f97b055e354a9789854a64ecc8c2e928382cf09dda9abde42bbdf92280cdd96', '0x864baff97fa60164f91f334e0c9be00a152a416556b462f96d7c43b59fe1ebaff42f0471d0bf264976f8aa6431176eb905bd875024cf4f76c13a70bede51dc3e47e10b9d5652d30d2663b3af3f08d5d11b9709a0321aba371d2ef13174dcfcaf', '0x95a46f32c994133ecc22db49bad2c36a281d6b574c83cfee6680b8c8100466ca034b815cfaedfbf54f4e75188e661df901abd089524e1e0eb0bf48d48caa9dd97482d2e8c1253e7e8ac250a32fd066d5b5cb08a8641bdd64ecfa48289dca83a3', '0xa2cce2be4d12144138cb91066e0cd0542c80b478bf467867ebef9ddaf3bd64e918294043500bf5a9f45ee089a8d6ace917108d9ce9e4f41e7e860cbce19ac52e791db3b6dde1c4b0367377b581f999f340e1d6814d724edc94cb07f9c4730774', '0xb145f203eee1ac0a1a1731113ffa7a8b0b694ef2312dabc4d431660f5e0645ef5838e3e624cfe1228cfa248d48b5760501f93e6ab13d3159fc241427116c4b90359599a4cb0a86d0bb9190aa7fabff482c812db966fd2ce0a1b48cb8ac8b3bca', '0xadabe5d215c608696e03861cbd5f7401869c756b3a5aadc55f41745ad9478145d44393fec8bb6dfc4ad9236dc62b9ada0f7ca57fe2bae1b71565dbf9536d33a68b8e2090b233422313cc96afc7f1f7e0907dc7787806671541d6de8ce47c4cd0', '0xae7845fa6b06db53201c1080e01e629781817f421f28956589c6df3091ec33754f8a4bd4647a6bb1c141ac22731e3c1014865d13f3ed538dcb0f7b7576435133d9d03be655f8fbb4c9f7d83e06d1210aedd45128c2b0c9bab45a9ddde1c862a5', '0x9159eaa826a24adfa7adf6e8d2832120ebb6eccbeb3d0459ffdc338548813a2d239d22b26451fda98cc0c204d8e1ac69150b5498e0be3045300e789bcb4e210d5cd431da4bdd915a21f407ea296c20c96608ded0b70d07188e96e6c1a7b9b86b', '0xa9fc6281e2d54b46458ef564ffaed6944bff71e389d0acc11fa35d3fcd8e10c1066e0dde5b9b6516f691bb478e81c6b20865281104dcb640e29dc116daae2e884f1fe6730d639dbe0e19a532be4fb337bf52ae8408446deb393d224eee7cfa50', '0x84291a42f991bfb36358eedead3699d9176a38f6f63757742fdbb7f631f2c70178b1aedef4912fed7b6cf27e88ddc7eb0e2a6aa4b999f3eb4b662b93f386c8d78e9ac9929e21f4c5e63b12991fcde93aa64a735b75b535e730ff8dd2abb16e04', '0xa1b7fcacae181495d91765dfddf26581e8e39421579c9cbd0dd27a40ea4c54af3444a36bf85a11dda2114246eaddbdd619397424bb1eb41b5a15004b902a590ede5742cd850cf312555be24d2df8becf48f5afba5a8cd087cb7be0a521728386', '0x92feaaf540dbd84719a4889a87cdd125b7e995a6782911931fef26da9afcfbe6f86aaf5328fe1f77631491ce6239c5470f44c7791506c6ef1626803a5794e76d2be0af92f7052c29ac6264b7b9b51f267ad820afc6f881460521428496c6a5f1', '0xa525c925bfae1b89320a5054acc1fa11820f73d0cf28d273092b305467b2831fab53b6daf75fb926f332782d50e2522a19edcd85be5eb72f1497193c952d8cd0bcc5d43b39363b206eae4cb1e61668bde28a3fb2fc1e0d3d113f6dfadb799717', '0x98752bb6f5a44213f40eda6aa4ff124057c1b13b6529ab42fe575b9afa66e59b9c0ed563fb20dff62130c436c3e905ee17dd8433ba02c445b1d67182ab6504a90bbe12c26a754bbf734665c622f76c62fe2e11dd43ce04fd2b91a8463679058b', '0xa9aa9a84729f7c44219ff9e00e651e50ddea3735ef2a73fdf8ed8cd271961d8ed7af5cd724b713a89a097a3fe65a3c0202f69458a8b4c157c62a85668b12fc0d3957774bc9b35f86c184dd03bfefd5c325da717d74192cc9751c2073fe9d170e', '0xb221c1fd335a4362eff504cd95145f122bf93ea02ae162a3fb39c75583fc13a932d26050e164da97cff3e91f9a7f6ff80302c19dd1916f24acf6b93b62f36e9665a8785413b0c7d930c7f1668549910f849bca319b00e59dd01e5dec8d2edacc', '0xa71e2b1e0b16d754b848f05eda90f67bedab37709550171551050c94efba0bfc282f72aeaaa1f0330041461f5e6aa4d11537237e955e1609a469d38ed17f5c2a35a1752f546db89bfeff9eab78ec944266f1cb94c1db3334ab48df716ce408ef', '0xb990ae72768779ba0b2e66df4dd29b3dbd00f901c23b2b4a53419226ef9232acedeb498b0d0687c463e3f1eead58b20b09efcefa566fbfdfe1c6e48d32367936142d0a734143e5e63cdf86be7457723535b787a9cfcfa32fe1d61ad5a2617220', '0x8d27e7fbff77d5b9b9bbc864d5231fecf817238a6433db668d5a62a2c1ee1e5694fdd90c3293c06cc0cb15f7cbeab44d0d42be632cb9ff41fc3f6628b4b62897797d7b56126d65b694dcf3e298e3561ac8813fbd7296593ced33850426df42db', '0xa92039a08b5502d5b211a7744099c9f93fa8c90cedcb1d05e92f01886219dd464eb5fb0337496ad96ed09c987da4e5f019035c5b01cc09b2a18b8a8dd419bc5895388a07e26958f6bd26751929c25f89b8eb4a299d822e2d26fec9ef350e0d3c', '0x92dcc5a1c8c3e1b28b1524e3dd6dbecd63017c9201da9dbe077f1b82adc08c50169f56fc7b5a3b28ec6b89254de3e2fd12838a761053437883c3e01ba616670cea843754548ef84bcc397de2369adcca2ab54cd73c55dc68d87aec3fc2fe4f10'] + + JUSTIFICATION_BITS_LENGTH: Uint64 = 4 - name: MAX_CONCURRENT_REQUESTS#phase0 @@ -443,8 +387,8 @@ - file: packages/params/src/index.ts search: export const MAX_CONCURRENT_REQUESTS = spec: | - - MAX_CONCURRENT_REQUESTS = 2 + + MAX_CONCURRENT_REQUESTS: Uint64 = 2 - name: MAX_REQUEST_LIGHT_CLIENT_UPDATES#altair @@ -452,8 +396,8 @@ - file: packages/params/src/index.ts search: export const MAX_REQUEST_LIGHT_CLIENT_UPDATES = spec: | - - MAX_REQUEST_LIGHT_CLIENT_UPDATES = 2**7 + + MAX_REQUEST_LIGHT_CLIENT_UPDATES: Uint64 = 2**7 - name: NODE_ID_BITS#phase0 @@ -461,15 +405,15 @@ - file: packages/params/src/index.ts search: export const NODE_ID_BITS = spec: | - - NODE_ID_BITS = 256 + + NODE_ID_BITS: Uint64 = 256 - name: NUM_BLOCK_TIMELINESS_DEADLINES#gloas sources: [] spec: | - - NUM_BLOCK_TIMELINESS_DEADLINES = 2 + + NUM_BLOCK_TIMELINESS_DEADLINES: Uint64 = 2 - name: PARTICIPATION_FLAG_WEIGHTS#altair @@ -486,8 +430,8 @@ - file: packages/params/src/index.ts search: export const PAYLOAD_BUILDER_VERSION = spec: | - - PAYLOAD_BUILDER_VERSION: uint8 = 0 + + PAYLOAD_BUILDER_VERSION: Uint8 = 0 - name: PAYLOAD_STATUS_EMPTY#gloas @@ -532,48 +476,27 @@ PAYLOAD_STATUS_VALID: PayloadValidationStatus = 0 -- name: PRIMITIVE_ROOT_OF_UNITY#deneb - sources: [] - spec: | - - PRIMITIVE_ROOT_OF_UNITY = 7 - - - name: PROPOSER_WEIGHT#altair sources: - file: packages/params/src/index.ts search: export const PROPOSER_WEIGHT = spec: | - - PROPOSER_WEIGHT: uint64 = 8 + + PROPOSER_WEIGHT: Uint64 = 8 - name: PTC_TIMELINESS_INDEX#gloas sources: [] spec: | - - PTC_TIMELINESS_INDEX = 1 - - -- name: RANDOM_CHALLENGE_KZG_BATCH_DOMAIN#deneb - sources: [] - spec: | - - RANDOM_CHALLENGE_KZG_BATCH_DOMAIN = b'RCKZGBATCH___V1_' - - -- name: RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN#fulu - sources: [] - spec: | - - RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN = b'RCKZGCBATCH__V1_' + + PTC_TIMELINESS_INDEX: Uint64 = 1 - name: SAFETY_DECAY#phase0 sources: [] spec: | - - SAFETY_DECAY: uint64 = 10 + + SAFETY_DECAY: Uint64 = 10 - name: SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY#bellatrix @@ -581,8 +504,8 @@ - file: packages/params/src/index.ts search: export const SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = spec: | - - SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = 128 + + SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY: Slot = 128 - name: SYNC_COMMITTEE_SUBNET_COUNT#altair @@ -590,8 +513,8 @@ - file: packages/params/src/index.ts search: export const SYNC_COMMITTEE_SUBNET_COUNT = spec: | - - SYNC_COMMITTEE_SUBNET_COUNT: uint64 = 2**2 + + SYNC_COMMITTEE_SUBNET_COUNT: Uint64 = 2**2 - name: SYNC_REWARD_WEIGHT#altair @@ -599,8 +522,8 @@ - file: packages/params/src/index.ts search: export const SYNC_REWARD_WEIGHT = spec: | - - SYNC_REWARD_WEIGHT: uint64 = 2 + + SYNC_REWARD_WEIGHT: Uint64 = 2 - name: TARGET_AGGREGATORS_PER_COMMITTEE#phase0 @@ -608,8 +531,8 @@ - file: packages/params/src/index.ts search: export const TARGET_AGGREGATORS_PER_COMMITTEE = spec: | - - TARGET_AGGREGATORS_PER_COMMITTEE = 2**4 + + TARGET_AGGREGATORS_PER_COMMITTEE: Uint64 = 2**4 - name: TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE#altair @@ -617,8 +540,8 @@ - file: packages/params/src/index.ts search: export const TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = spec: | - - TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: uint64 = 2**4 + + TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: Uint64 = 2**4 - name: TIMELY_HEAD_FLAG_INDEX#altair @@ -626,8 +549,8 @@ - file: packages/params/src/index.ts search: export const TIMELY_HEAD_FLAG_INDEX = spec: | - - TIMELY_HEAD_FLAG_INDEX = 2 + + TIMELY_HEAD_FLAG_INDEX: Uint64 = 2 - name: TIMELY_HEAD_WEIGHT#altair @@ -635,8 +558,8 @@ - file: packages/params/src/index.ts search: export const TIMELY_HEAD_WEIGHT = spec: | - - TIMELY_HEAD_WEIGHT: uint64 = 14 + + TIMELY_HEAD_WEIGHT: Uint64 = 14 - name: TIMELY_SOURCE_FLAG_INDEX#altair @@ -644,8 +567,8 @@ - file: packages/params/src/index.ts search: export const TIMELY_SOURCE_FLAG_INDEX = spec: | - - TIMELY_SOURCE_FLAG_INDEX = 0 + + TIMELY_SOURCE_FLAG_INDEX: Uint64 = 0 - name: TIMELY_SOURCE_WEIGHT#altair @@ -653,8 +576,8 @@ - file: packages/params/src/index.ts search: export const TIMELY_SOURCE_WEIGHT = spec: | - - TIMELY_SOURCE_WEIGHT: uint64 = 14 + + TIMELY_SOURCE_WEIGHT: Uint64 = 14 - name: TIMELY_TARGET_FLAG_INDEX#altair @@ -662,8 +585,8 @@ - file: packages/params/src/index.ts search: export const TIMELY_TARGET_FLAG_INDEX = spec: | - - TIMELY_TARGET_FLAG_INDEX = 1 + + TIMELY_TARGET_FLAG_INDEX: Uint64 = 1 - name: TIMELY_TARGET_WEIGHT#altair @@ -671,29 +594,29 @@ - file: packages/params/src/index.ts search: export const TIMELY_TARGET_WEIGHT = spec: | - - TIMELY_TARGET_WEIGHT: uint64 = 26 + + TIMELY_TARGET_WEIGHT: Uint64 = 26 - name: UINT256_MAX#fulu sources: [] spec: | - - UINT256_MAX: uint256 = 2**256 - 1 + + UINT256_MAX: Uint256 = 2**256 - 1 - name: UINT64_MAX#phase0 sources: [] spec: | - - UINT64_MAX: uint64 = 2**64 - 1 + + UINT64_MAX: Uint64 = 2**64 - 1 - name: UINT64_MAX_SQRT#phase0 sources: [] spec: | - - UINT64_MAX_SQRT: uint64 = 4294967295 + + UINT64_MAX_SQRT: Uint64 = 4294967295 - name: UNSET_DEPOSIT_REQUESTS_START_INDEX#electra @@ -701,8 +624,8 @@ - file: packages/params/src/index.ts search: export const UNSET_DEPOSIT_REQUESTS_START_INDEX = spec: | - - UNSET_DEPOSIT_REQUESTS_START_INDEX: uint64 = 2**64 - 1 + + UNSET_DEPOSIT_REQUESTS_START_INDEX: Uint64 = 2**64 - 1 - name: VERSIONED_HASH_VERSION_KZG#deneb @@ -719,8 +642,8 @@ - file: packages/params/src/index.ts search: export const WEIGHT_DENOMINATOR = spec: | - - WEIGHT_DENOMINATOR: uint64 = 64 + + WEIGHT_DENOMINATOR: Uint64 = 64 - name: WITHDRAWAL_REQUEST_TYPE#electra diff --git a/specrefs/containers.yml b/specrefs/containers.yml index 1571d300cca0..0a809c18ccb5 100644 --- a/specrefs/containers.yml +++ b/specrefs/containers.yml @@ -28,9 +28,9 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const Attestation = spec: | - + class Attestation(Container): - aggregation_bits: Bitlist[MAX_VALIDATORS_PER_COMMITTEE] + aggregation_bits: BitList[MAX_VALIDATORS_PER_COMMITTEE] data: AttestationData signature: BLSSignature @@ -40,14 +40,14 @@ - file: packages/types/src/electra/sszTypes.ts search: export const Attestation = spec: | - + class Attestation(Container): # [Modified in Electra:EIP7549] aggregation_bits: AggregationBits data: AttestationData signature: BLSSignature # [New in Electra:EIP7549] - committee_bits: Bitvector[MAX_COMMITTEES_PER_SLOT] + committee_bits: BitVector[MAX_COMMITTEES_PER_SLOT] - name: Attestation#gloas @@ -55,12 +55,12 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const Attestation = spec: | - + class Attestation(ProgressiveContainer(active_fields=[1] * 4)): # type: ignore aggregation_bits: AggregationBits data: AttestationData signature: BLSSignature - committee_bits: Bitvector[MAX_COMMITTEES_PER_SLOT] + committee_bits: BitVector[MAX_COMMITTEES_PER_SLOT] - name: AttestationData#phase0 @@ -308,9 +308,9 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -320,14 +320,14 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_attestations: List[PendingAttestation, MAX_ATTESTATIONS * SLOTS_PER_EPOCH] current_epoch_attestations: List[PendingAttestation, MAX_ATTESTATIONS * SLOTS_PER_EPOCH] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint @@ -338,9 +338,9 @@ - file: packages/types/src/altair/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -350,7 +350,7 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] @@ -359,12 +359,12 @@ previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] # [Modified in Altair] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint # [New in Altair] - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] # [New in Altair] current_sync_committee: SyncCommittee # [New in Altair] @@ -376,9 +376,9 @@ - file: packages/types/src/bellatrix/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -388,18 +388,18 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee # [New in Bellatrix] @@ -411,9 +411,9 @@ - file: packages/types/src/capella/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -423,18 +423,18 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee # [Modified in Capella] @@ -452,9 +452,9 @@ - file: packages/types/src/deneb/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -464,18 +464,18 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee # [Modified in Deneb:EIP4844] @@ -490,9 +490,9 @@ - file: packages/types/src/electra/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -502,18 +502,18 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee latest_execution_payload_header: ExecutionPayloadHeader @@ -521,7 +521,7 @@ next_withdrawal_validator_index: ValidatorIndex historical_summaries: List[HistoricalSummary, HISTORICAL_ROOTS_LIMIT] # [New in Electra:EIP6110] - deposit_requests_start_index: uint64 + deposit_requests_start_index: Uint64 # [New in Electra:EIP7251] deposit_balance_to_consume: Gwei # [New in Electra:EIP7251] @@ -545,9 +545,9 @@ - file: packages/types/src/fulu/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(Container): - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -557,25 +557,25 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: List[Validator, VALIDATOR_REGISTRY_LIMIT] balances: List[Gwei, VALIDATOR_REGISTRY_LIMIT] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] current_epoch_participation: List[ParticipationFlags, VALIDATOR_REGISTRY_LIMIT] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: List[uint64, VALIDATOR_REGISTRY_LIMIT] + inactivity_scores: List[Uint64, VALIDATOR_REGISTRY_LIMIT] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee latest_execution_payload_header: ExecutionPayloadHeader next_withdrawal_index: WithdrawalIndex next_withdrawal_validator_index: ValidatorIndex historical_summaries: List[HistoricalSummary, HISTORICAL_ROOTS_LIMIT] - deposit_requests_start_index: uint64 + deposit_requests_start_index: Uint64 deposit_balance_to_consume: Gwei exit_balance_to_consume: Gwei earliest_exit_epoch: Epoch @@ -593,9 +593,9 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const BeaconState = spec: | - + class BeaconState(ProgressiveContainer(active_fields=[1] * 46)): # type: ignore - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -605,7 +605,7 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 # [Modified in Gloas:EIP7688] validators: ProgressiveList[Validator] # [Modified in Gloas:EIP7688] @@ -616,12 +616,12 @@ previous_epoch_participation: ProgressiveList[ParticipationFlags] # [Modified in Gloas:EIP7688] current_epoch_participation: ProgressiveList[ParticipationFlags] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint # [Modified in Gloas:EIP7688] - inactivity_scores: ProgressiveList[uint64] + inactivity_scores: ProgressiveList[Uint64] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee # [Modified in Gloas:EIP7732] @@ -631,7 +631,7 @@ next_withdrawal_index: WithdrawalIndex next_withdrawal_validator_index: ValidatorIndex historical_summaries: List[HistoricalSummary, HISTORICAL_ROOTS_LIMIT] - deposit_requests_start_index: uint64 + deposit_requests_start_index: Uint64 deposit_balance_to_consume: Gwei exit_balance_to_consume: Gwei earliest_exit_epoch: Epoch @@ -649,7 +649,7 @@ # [New in Gloas:EIP7732] next_withdrawal_builder_index: BuilderIndex # [New in Gloas:EIP7732] - execution_payload_availability: Bitvector[SLOTS_PER_HISTORICAL_ROOT] + execution_payload_availability: BitVector[SLOTS_PER_HISTORICAL_ROOT] # [New in Gloas:EIP7732] builder_pending_payments: Vector[BuilderPendingPayment, 2 * SLOTS_PER_EPOCH] # [New in Gloas:EIP7732] @@ -665,9 +665,9 @@ - name: BeaconState#heze sources: [] spec: | - + class BeaconState(ProgressiveContainer(active_fields=[1] * 46)): # type: ignore - genesis_time: uint64 + genesis_time: Uint64 genesis_validators_root: Root slot: Slot fork: Fork @@ -677,25 +677,25 @@ historical_roots: List[Root, HISTORICAL_ROOTS_LIMIT] eth1_data: Eth1Data eth1_data_votes: List[Eth1Data, EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH] - eth1_deposit_index: uint64 + eth1_deposit_index: Uint64 validators: ProgressiveList[Validator] balances: ProgressiveList[Gwei] randao_mixes: Vector[Bytes32, EPOCHS_PER_HISTORICAL_VECTOR] slashings: Vector[Gwei, EPOCHS_PER_SLASHINGS_VECTOR] previous_epoch_participation: ProgressiveList[ParticipationFlags] current_epoch_participation: ProgressiveList[ParticipationFlags] - justification_bits: Bitvector[JUSTIFICATION_BITS_LENGTH] + justification_bits: BitVector[JUSTIFICATION_BITS_LENGTH] previous_justified_checkpoint: Checkpoint current_justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint - inactivity_scores: ProgressiveList[uint64] + inactivity_scores: ProgressiveList[Uint64] current_sync_committee: SyncCommittee next_sync_committee: SyncCommittee latest_block_hash: Hash32 next_withdrawal_index: WithdrawalIndex next_withdrawal_validator_index: ValidatorIndex historical_summaries: List[HistoricalSummary, HISTORICAL_ROOTS_LIMIT] - deposit_requests_start_index: uint64 + deposit_requests_start_index: Uint64 deposit_balance_to_consume: Gwei exit_balance_to_consume: Gwei earliest_exit_epoch: Epoch @@ -707,7 +707,7 @@ proposer_lookahead: Vector[ValidatorIndex, (MIN_SEED_LOOKAHEAD + 1) * SLOTS_PER_EPOCH] builders: ProgressiveList[Builder] next_withdrawal_builder_index: BuilderIndex - execution_payload_availability: Bitvector[SLOTS_PER_HISTORICAL_ROOT] + execution_payload_availability: BitVector[SLOTS_PER_HISTORICAL_ROOT] builder_pending_payments: Vector[BuilderPendingPayment, 2 * SLOTS_PER_EPOCH] builder_pending_withdrawals: ProgressiveList[BuilderPendingWithdrawal] # [Modified in Heze:EIP7805] @@ -747,10 +747,10 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const Builder = spec: | - + class Builder(Container): pubkey: BLSPubkey - version: uint8 + version: Uint8 execution_address: ExecutionAddress balance: Gwei deposit_epoch: Epoch @@ -931,13 +931,13 @@ - file: packages/types/src/electra/sszTypes.ts search: export const DepositRequest = spec: | - + class DepositRequest(Container): pubkey: BLSPubkey withdrawal_credentials: Bytes32 amount: Gwei signature: BLSSignature - index: uint64 + index: Uint64 - name: Eth1Block#phase0 @@ -945,11 +945,11 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const Eth1Block = spec: | - + class Eth1Block(Container): - timestamp: uint64 + timestamp: Uint64 deposit_root: Root - deposit_count: uint64 + deposit_count: Uint64 - name: Eth1Data#phase0 @@ -957,10 +957,10 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const Eth1Data = spec: | - + class Eth1Data(Container): deposit_root: Root - deposit_count: uint64 + deposit_count: Uint64 block_hash: Hash32 @@ -969,7 +969,7 @@ - file: packages/types/src/bellatrix/sszTypes.ts search: export const ExecutionPayload = spec: | - + class ExecutionPayload(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -977,12 +977,12 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions: List[Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] @@ -992,7 +992,7 @@ - file: packages/types/src/capella/sszTypes.ts search: export const ExecutionPayload = spec: | - + class ExecutionPayload(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1000,12 +1000,12 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions: List[Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] # [New in Capella] @@ -1017,7 +1017,7 @@ - file: packages/types/src/deneb/sszTypes.ts search: export const ExecutionPayload = spec: | - + class ExecutionPayload(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1025,19 +1025,19 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions: List[Transaction, MAX_TRANSACTIONS_PER_PAYLOAD] withdrawals: List[Withdrawal, MAX_WITHDRAWALS_PER_PAYLOAD] # [New in Deneb:EIP4844] - blob_gas_used: uint64 + blob_gas_used: Uint64 # [New in Deneb:EIP4844] - excess_blob_gas: uint64 + excess_blob_gas: Uint64 - name: ExecutionPayload#gloas @@ -1045,7 +1045,7 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const ExecutionPayload = spec: | - + class ExecutionPayload(ProgressiveContainer(active_fields=[1] * 19)): # type: ignore parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1053,23 +1053,23 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 # [Modified in Gloas:EIP7688] transactions: ProgressiveList[Transaction] # [Modified in Gloas:EIP7688] withdrawals: ProgressiveList[Withdrawal] - blob_gas_used: uint64 - excess_blob_gas: uint64 + blob_gas_used: Uint64 + excess_blob_gas: Uint64 # [New in Gloas:EIP7928] block_access_list: BlockAccessList # [New in Gloas:EIP7843] - slot_number: uint64 + slot_number: Uint64 - name: ExecutionPayloadBid#gloas @@ -1077,14 +1077,14 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const ExecutionPayloadBid = spec: | - + class ExecutionPayloadBid(ProgressiveContainer(active_fields=[1] * 12)): # type: ignore parent_block_hash: Hash32 parent_block_root: Root block_hash: Hash32 prev_randao: Bytes32 fee_recipient: ExecutionAddress - gas_limit: uint64 + gas_limit: Uint64 builder_index: BuilderIndex slot: Slot value: Gwei @@ -1096,14 +1096,14 @@ - name: ExecutionPayloadBid#heze sources: [] spec: | - + class ExecutionPayloadBid(ProgressiveContainer(active_fields=[1] * 13)): # type: ignore parent_block_hash: Hash32 parent_block_root: Root block_hash: Hash32 prev_randao: Bytes32 fee_recipient: ExecutionAddress - gas_limit: uint64 + gas_limit: Uint64 builder_index: BuilderIndex slot: Slot value: Gwei @@ -1111,7 +1111,7 @@ blob_kzg_commitments: ProgressiveList[KZGCommitment] execution_requests_root: Root # [New in Heze:EIP7805] - inclusion_list_bits: Bitvector[INCLUSION_LIST_COMMITTEE_SIZE] + inclusion_list_bits: BitVector[INCLUSION_LIST_COMMITTEE_SIZE] - name: ExecutionPayloadEnvelope#gloas @@ -1133,7 +1133,7 @@ - file: packages/types/src/bellatrix/sszTypes.ts search: export const ExecutionPayloadHeader = spec: | - + class ExecutionPayloadHeader(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1141,12 +1141,12 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions_root: Root @@ -1156,7 +1156,7 @@ - file: packages/types/src/capella/sszTypes.ts search: export const ExecutionPayloadHeader = spec: | - + class ExecutionPayloadHeader(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1164,12 +1164,12 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions_root: Root # [New in Capella] @@ -1181,7 +1181,7 @@ - file: packages/types/src/deneb/sszTypes.ts search: export const ExecutionPayloadHeader = spec: | - + class ExecutionPayloadHeader(Container): parent_hash: Hash32 fee_recipient: ExecutionAddress @@ -1189,19 +1189,19 @@ receipts_root: Bytes32 logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM] prev_randao: Bytes32 - block_number: uint64 - gas_limit: uint64 - gas_used: uint64 - timestamp: uint64 + block_number: Uint64 + gas_limit: Uint64 + gas_used: Uint64 + timestamp: Uint64 extra_data: ByteList[MAX_EXTRA_DATA_BYTES] - base_fee_per_gas: uint256 + base_fee_per_gas: Uint256 block_hash: Hash32 transactions_root: Root withdrawals_root: Root # [New in Deneb:EIP4844] - blob_gas_used: uint64 + blob_gas_used: Uint64 # [New in Deneb:EIP4844] - excess_blob_gas: uint64 + excess_blob_gas: Uint64 - name: ExecutionRequests#electra @@ -1540,9 +1540,9 @@ - name: PartialDataColumnSidecar#gloas sources: [] spec: | - + class PartialDataColumnSidecar(Container): - cells_present_bitmap: ProgressiveBitlist + cells_present_bitmap: ProgressiveBitList partial_column: ProgressiveList[Cell] kzg_proofs: ProgressiveList[KZGProof] @@ -1552,9 +1552,9 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const PayloadAttestation = spec: | - + class PayloadAttestation(ProgressiveContainer(active_fields=[1] * 3)): # type: ignore - aggregation_bits: Bitvector[PTC_SIZE] + aggregation_bits: BitVector[PTC_SIZE] data: PayloadAttestationData signature: BLSSignature @@ -1564,12 +1564,12 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const PayloadAttestationData = spec: | - + class PayloadAttestationData(Container): beacon_block_root: Root slot: Slot - payload_present: boolean - blob_data_available: boolean + payload_present: Boolean + blob_data_available: Boolean - name: PayloadAttestationMessage#gloas @@ -1589,9 +1589,9 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const PendingAttestation = spec: | - + class PendingAttestation(Container): - aggregation_bits: Bitlist[MAX_VALIDATORS_PER_COMMITTEE] + aggregation_bits: BitList[MAX_VALIDATORS_PER_COMMITTEE] data: AttestationData inclusion_delay: Slot proposer_index: ValidatorIndex @@ -1639,11 +1639,11 @@ - file: packages/types/src/bellatrix/sszTypes.ts search: export const PowBlock = spec: | - + class PowBlock(Container): block_hash: Hash32 parent_hash: Hash32 - total_difficulty: uint256 + total_difficulty: Uint256 - name: ProposerPreferences#gloas @@ -1651,13 +1651,13 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const ProposerPreferences = spec: | - + class ProposerPreferences(Container): dependent_root: Root proposal_slot: Slot validator_index: ValidatorIndex fee_recipient: ExecutionAddress - target_gas_limit: uint64 + target_gas_limit: Uint64 - name: ProposerSlashing#phase0 @@ -1830,9 +1830,9 @@ - file: packages/types/src/altair/sszTypes.ts search: export const SyncAggregate = spec: | - + class SyncAggregate(Container): - sync_committee_bits: Bitvector[SYNC_COMMITTEE_SIZE] + sync_committee_bits: BitVector[SYNC_COMMITTEE_SIZE] sync_committee_signature: BLSSignature @@ -1841,10 +1841,10 @@ - file: packages/types/src/altair/sszTypes.ts search: export const SyncAggregatorSelectionData = spec: | - + class SyncAggregatorSelectionData(Container): slot: Slot - subcommittee_index: uint64 + subcommittee_index: Uint64 - name: SyncCommittee#altair @@ -1863,12 +1863,12 @@ - file: packages/types/src/altair/sszTypes.ts search: export const SyncCommitteeContribution = spec: | - + class SyncCommitteeContribution(Container): slot: Slot beacon_block_root: Root - subcommittee_index: uint64 - aggregation_bits: Bitvector[SYNC_COMMITTEE_SIZE // SYNC_COMMITTEE_SUBNET_COUNT] + subcommittee_index: Uint64 + aggregation_bits: BitVector[SYNC_COMMITTEE_SIZE // SYNC_COMMITTEE_SUBNET_COUNT] signature: BLSSignature @@ -1890,12 +1890,12 @@ - file: packages/types/src/phase0/sszTypes.ts search: export const Validator = spec: | - + class Validator(Container): pubkey: BLSPubkey withdrawal_credentials: Bytes32 effective_balance: Gwei - slashed: boolean + slashed: Boolean activation_eligibility_epoch: Epoch activation_epoch: Epoch exit_epoch: Epoch diff --git a/specrefs/dataclasses.yml b/specrefs/dataclasses.yml index 7ce2e2cb8013..b3208d8489e5 100644 --- a/specrefs/dataclasses.yml +++ b/specrefs/dataclasses.yml @@ -3,10 +3,10 @@ - file: packages/config/src/forkConfig/types.ts search: export type BlobParameters = spec: | - + class BlobParameters: epoch: Epoch - max_blobs_per_block: uint64 + max_blobs_per_block: Uint64 - name: BlobsBundle#deneb @@ -37,35 +37,35 @@ - name: ExpectedWithdrawals#capella sources: [] spec: | - + class ExpectedWithdrawals: withdrawals: Sequence[Withdrawal] - processed_sweep_withdrawals_count: uint64 + processed_sweep_withdrawals_count: Uint64 - name: ExpectedWithdrawals#electra sources: [] spec: | - + class ExpectedWithdrawals: withdrawals: Sequence[Withdrawal] # [New in Electra:EIP7251] - processed_partial_withdrawals_count: uint64 - processed_sweep_withdrawals_count: uint64 + processed_partial_withdrawals_count: Uint64 + processed_sweep_withdrawals_count: Uint64 - name: ExpectedWithdrawals#gloas sources: [] spec: | - + class ExpectedWithdrawals: withdrawals: Sequence[Withdrawal] # [New in Gloas:EIP7732] - processed_builder_withdrawals_count: uint64 - processed_partial_withdrawals_count: uint64 + processed_builder_withdrawals_count: Uint64 + processed_partial_withdrawals_count: Uint64 # [New in Gloas:EIP7732] - processed_builders_sweep_count: uint64 - processed_sweep_withdrawals_count: uint64 + processed_builders_sweep_count: Uint64 + processed_sweep_withdrawals_count: Uint64 - name: FastConfirmationStore#phase0 @@ -129,10 +129,10 @@ - file: packages/beacon-node/src/execution/engine/interface.ts search: "getPayload(" spec: | - + class GetPayloadResponse: execution_payload: ExecutionPayload - block_value: uint256 + block_value: Uint256 - name: GetPayloadResponse#deneb @@ -142,10 +142,10 @@ - file: packages/beacon-node/src/execution/engine/interface.ts search: "getPayload(" spec: | - + class GetPayloadResponse: execution_payload: ExecutionPayload - block_value: uint256 + block_value: Uint256 # [New in Deneb:EIP4844] blobs_bundle: BlobsBundle @@ -157,10 +157,10 @@ - file: packages/beacon-node/src/execution/engine/interface.ts search: "getPayload(" spec: | - + class GetPayloadResponse: execution_payload: ExecutionPayload - block_value: uint256 + block_value: Uint256 blobs_bundle: BlobsBundle # [New in Electra] execution_requests: Sequence[bytes] @@ -173,10 +173,10 @@ - file: packages/beacon-node/src/execution/engine/interface.ts search: "getPayload(" spec: | - + class GetPayloadResponse: execution_payload: ExecutionPayload - block_value: uint256 + block_value: Uint256 # [Modified in Fulu:EIP7594] blobs_bundle: BlobsBundle execution_requests: Sequence[bytes] @@ -185,12 +185,12 @@ - name: InclusionListStore#heze sources: [] spec: | - + class InclusionListStore: - inclusion_lists: DefaultDict[Root, Dict[Root, InclusionList]] = field( + inclusion_lists: DefaultDict[Root, Dict[Root, SignedInclusionList]] = field( default_factory=lambda: defaultdict(dict) ) - inclusion_list_timeliness: Dict[Root, boolean] = field(default_factory=dict) + inclusion_list_timeliness: Dict[Root, Boolean] = field(default_factory=dict) equivocators: DefaultDict[Root, Set[ValidatorIndex]] = field( default_factory=lambda: defaultdict(set) ) @@ -209,12 +209,12 @@ - name: LatestMessage#gloas sources: [] spec: | - + @dataclass(eq=True, frozen=True) class LatestMessage: slot: Slot root: Root - payload_present: boolean + payload_present: Boolean - name: LightClientStore#altair @@ -222,7 +222,7 @@ - file: packages/types/src/altair/sszTypes.ts search: export const LightClientStore = spec: | - + class LightClientStore: # Header that is finalized finalized_header: LightClientHeader @@ -234,8 +234,8 @@ # Most recent available reasonably-safe header optimistic_header: LightClientHeader # Max number of active participants in a sync committee (used to calculate safety threshold) - previous_max_active_participants: uint64 - current_max_active_participants: uint64 + previous_max_active_participants: Uint64 + current_max_active_participants: Uint64 - name: LightClientStore#capella @@ -243,7 +243,7 @@ - file: packages/types/src/capella/sszTypes.ts search: export const LightClientStore = spec: | - + class LightClientStore: # [Modified in Capella] finalized_header: LightClientHeader @@ -253,8 +253,8 @@ best_valid_update: Optional[LightClientUpdate] # [Modified in Capella] optimistic_header: LightClientHeader - previous_max_active_participants: uint64 - current_max_active_participants: uint64 + previous_max_active_participants: Uint64 + current_max_active_participants: Uint64 - name: NewPayloadRequest#bellatrix @@ -309,9 +309,9 @@ - file: packages/types/src/bellatrix/sszTypes.ts search: export const PayloadAttributes = spec: | - + class PayloadAttributes: - timestamp: uint64 + timestamp: Uint64 prev_randao: Bytes32 suggested_fee_recipient: ExecutionAddress @@ -321,9 +321,9 @@ - file: packages/types/src/capella/sszTypes.ts search: export const PayloadAttributes = spec: | - + class PayloadAttributes: - timestamp: uint64 + timestamp: Uint64 prev_randao: Bytes32 suggested_fee_recipient: ExecutionAddress # [New in Capella] @@ -335,9 +335,9 @@ - file: packages/types/src/deneb/sszTypes.ts search: export const PayloadAttributes = spec: | - + class PayloadAttributes: - timestamp: uint64 + timestamp: Uint64 prev_randao: Bytes32 suggested_fee_recipient: ExecutionAddress withdrawals: Sequence[Withdrawal] @@ -350,31 +350,31 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const PayloadAttributes = spec: | - + class PayloadAttributes: - timestamp: uint64 + timestamp: Uint64 prev_randao: Bytes32 suggested_fee_recipient: ExecutionAddress withdrawals: Sequence[Withdrawal] parent_beacon_block_root: Root # [New in Gloas:EIP7843] - slot_number: uint64 + slot_number: Uint64 # [New in Gloas] - target_gas_limit: uint64 + target_gas_limit: Uint64 - name: PayloadAttributes#heze sources: [] spec: | - + class PayloadAttributes: - timestamp: uint64 + timestamp: Uint64 prev_randao: Bytes32 suggested_fee_recipient: ExecutionAddress withdrawals: Sequence[Withdrawal] parent_beacon_block_root: Root - slot_number: uint64 - target_gas_limit: uint64 + slot_number: Uint64 + target_gas_limit: Uint64 # [New in Heze:EIP7805] inclusion_list_transactions: Sequence[Transaction] @@ -382,38 +382,38 @@ - name: Seen#altair sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - aggregate_data_roots: Dict[Root, Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Root, Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] # [New in Altair] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] # [New in Altair] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] # [New in Altair] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] - name: Seen#capella sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - aggregate_data_roots: Dict[Root, Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Root, Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] # [New in Capella] bls_to_execution_change_indices: Set[ValidatorIndex] @@ -421,18 +421,18 @@ - name: Seen#deneb sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - aggregate_data_roots: Dict[Root, Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Root, Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] bls_to_execution_change_indices: Set[ValidatorIndex] # [New in Deneb] blob_sidecar_tuples: Set[Tuple[Slot, ValidatorIndex, BlobIndex]] @@ -441,19 +441,19 @@ - name: Seen#electra sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] # [Modified in Electra:EIP7549] - aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] bls_to_execution_change_indices: Set[ValidatorIndex] blob_sidecar_tuples: Set[Tuple[Slot, ValidatorIndex, BlobIndex]] @@ -461,18 +461,18 @@ - name: Seen#fulu sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] bls_to_execution_change_indices: Set[ValidatorIndex] # [Modified in Fulu:EIP7594] # Removed `blob_sidecar_tuples` @@ -485,18 +485,18 @@ - name: Seen#gloas sources: [] spec: | - + class Seen: proposer_slots: Set[Tuple[ValidatorIndex, Slot]] aggregator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[boolean, ...]]] + aggregate_data_roots: Dict[Tuple[Root, CommitteeIndex], Set[Tuple[Boolean, ...]]] voluntary_exit_indices: Set[ValidatorIndex] proposer_slashing_indices: Set[ValidatorIndex] attester_slashing_indices: Set[ValidatorIndex] attestation_validator_epochs: Set[Tuple[ValidatorIndex, Epoch]] - sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, uint64]] - sync_contribution_data: Dict[Tuple[Slot, Root, uint64], Set[Tuple[boolean, ...]]] - sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, uint64]] + sync_contribution_aggregator_slots: Set[Tuple[ValidatorIndex, Slot, Uint64]] + sync_contribution_data: Dict[Tuple[Slot, Root, Uint64], Set[Tuple[Boolean, ...]]] + sync_message_validator_slots: Set[Tuple[Slot, ValidatorIndex, Uint64]] bls_to_execution_change_indices: Set[ValidatorIndex] data_column_sidecar_tuples: Set[Tuple[Slot, ValidatorIndex, ColumnIndex]] @@ -506,10 +506,10 @@ - file: packages/fork-choice/src/forkChoice/store.ts search: export interface IForkChoiceStore spec: | - + class Store: - time: uint64 - genesis_time: uint64 + time: Uint64 + genesis_time: Uint64 justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint unrealized_justified_checkpoint: Checkpoint @@ -518,7 +518,7 @@ equivocating_indices: Set[ValidatorIndex] blocks: Dict[Root, BeaconBlock] = field(default_factory=dict) block_states: Dict[Root, BeaconState] = field(default_factory=dict) - block_timeliness: Dict[Root, boolean] = field(default_factory=dict) + block_timeliness: Dict[Root, Boolean] = field(default_factory=dict) checkpoint_states: Dict[Checkpoint, BeaconState] = field(default_factory=dict) latest_messages: Dict[ValidatorIndex, LatestMessage] = field(default_factory=dict) unrealized_justifications: Dict[Root, Checkpoint] = field(default_factory=dict) @@ -527,10 +527,10 @@ - name: Store#gloas sources: [] spec: | - + class Store: - time: uint64 - genesis_time: uint64 + time: Uint64 + genesis_time: Uint64 justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint unrealized_justified_checkpoint: Checkpoint @@ -540,16 +540,16 @@ blocks: Dict[Root, BeaconBlock] = field(default_factory=dict) block_states: Dict[Root, BeaconState] = field(default_factory=dict) # [Modified in Gloas:EIP7732] - block_timeliness: Dict[Root, list[boolean]] = field(default_factory=dict) + block_timeliness: Dict[Root, list[Boolean]] = field(default_factory=dict) checkpoint_states: Dict[Checkpoint, BeaconState] = field(default_factory=dict) latest_messages: Dict[ValidatorIndex, LatestMessage] = field(default_factory=dict) unrealized_justifications: Dict[Root, Checkpoint] = field(default_factory=dict) # [New in Gloas:EIP7732] payloads: Dict[Root, ExecutionPayloadEnvelope] = field(default_factory=dict) # [New in Gloas:EIP7732] - payload_timeliness_vote: Dict[Root, list[Optional[boolean]]] = field(default_factory=dict) + payload_timeliness_vote: Dict[Root, list[Optional[Boolean]]] = field(default_factory=dict) # [New in Gloas:EIP7732] - payload_data_availability_vote: Dict[Root, list[Optional[boolean]]] = field( + payload_data_availability_vote: Dict[Root, list[Optional[Boolean]]] = field( default_factory=dict ) @@ -557,10 +557,10 @@ - name: Store#heze sources: [] spec: | - + class Store: - time: uint64 - genesis_time: uint64 + time: Uint64 + genesis_time: Uint64 justified_checkpoint: Checkpoint finalized_checkpoint: Checkpoint unrealized_justified_checkpoint: Checkpoint @@ -569,15 +569,15 @@ equivocating_indices: Set[ValidatorIndex] blocks: Dict[Root, BeaconBlock] = field(default_factory=dict) block_states: Dict[Root, BeaconState] = field(default_factory=dict) - block_timeliness: Dict[Root, list[boolean]] = field(default_factory=dict) + block_timeliness: Dict[Root, list[Boolean]] = field(default_factory=dict) checkpoint_states: Dict[Checkpoint, BeaconState] = field(default_factory=dict) latest_messages: Dict[ValidatorIndex, LatestMessage] = field(default_factory=dict) unrealized_justifications: Dict[Root, Checkpoint] = field(default_factory=dict) payloads: Dict[Root, ExecutionPayloadEnvelope] = field(default_factory=dict) - payload_timeliness_vote: Dict[Root, list[Optional[boolean]]] = field(default_factory=dict) - payload_data_availability_vote: Dict[Root, list[Optional[boolean]]] = field( + payload_timeliness_vote: Dict[Root, list[Optional[Boolean]]] = field(default_factory=dict) + payload_data_availability_vote: Dict[Root, list[Optional[Boolean]]] = field( default_factory=dict ) # [New in Heze:EIP7805] - payload_inclusion_list_satisfaction: Dict[Root, boolean] = field(default_factory=dict) + payload_inclusion_list_satisfaction: Dict[Root, Boolean] = field(default_factory=dict) diff --git a/specrefs/functions.yml b/specrefs/functions.yml index 3cba2573fa0f..71160be55823 100644 --- a/specrefs/functions.yml +++ b/specrefs/functions.yml @@ -1,13 +1,13 @@ - name: add_builder_to_registry#gloas sources: [] spec: | - + def add_builder_to_registry( state: BeaconState, pubkey: BLSPubkey, - version: uint8, + version: Uint8, execution_address: ExecutionAddress, - amount: uint64, + amount: Uint64, slot: Slot, ) -> None: set_or_append_list( @@ -41,9 +41,9 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function addValidatorToRegistry( spec: | - + def add_validator_to_registry( - state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64 + state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64 ) -> None: state.validators.append(get_validator_from_deposit(pubkey, withdrawal_credentials, amount)) state.balances.append(amount) @@ -54,9 +54,9 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function addValidatorToRegistry( spec: | - + def add_validator_to_registry( - state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64 + state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64 ) -> None: index = get_index_for_new_validator(state) validator = get_validator_from_deposit(pubkey, withdrawal_credentials, amount) @@ -65,7 +65,7 @@ # [New in Altair] set_or_append_list(state.previous_epoch_participation, index, ParticipationFlags(0b0000_0000)) set_or_append_list(state.current_epoch_participation, index, ParticipationFlags(0b0000_0000)) - set_or_append_list(state.inactivity_scores, index, uint64(0)) + set_or_append_list(state.inactivity_scores, index, Uint64(0)) - name: add_validator_to_registry#electra @@ -73,9 +73,9 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function addValidatorToRegistry( spec: | - + def add_validator_to_registry( - state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64 + state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64 ) -> None: index = get_index_for_new_validator(state) # [Modified in Electra:EIP7251] @@ -84,7 +84,7 @@ set_or_append_list(state.balances, index, amount) set_or_append_list(state.previous_epoch_participation, index, ParticipationFlags(0b0000_0000)) set_or_append_list(state.current_epoch_participation, index, ParticipationFlags(0b0000_0000)) - set_or_append_list(state.inactivity_scores, index, uint64(0)) + set_or_append_list(state.inactivity_scores, index, Uint64(0)) - name: adjust_committee_weight_estimate_to_ensure_safety#phase0 @@ -105,12 +105,12 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function applyDeposit( spec: | - + def apply_deposit( state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, - amount: uint64, + amount: Uint64, signature: BLSSignature, ) -> None: validator_pubkeys = [v.pubkey for v in state.validators] @@ -137,12 +137,12 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function applyDeposit( spec: | - + def apply_deposit( state: BeaconState, pubkey: BLSPubkey, withdrawal_credentials: Bytes32, - amount: uint64, + amount: Uint64, signature: BLSSignature, ) -> None: validator_pubkeys = [v.pubkey for v in state.validators] @@ -475,12 +475,12 @@ - name: bytes_to_uint64#phase0 sources: [] spec: | - - def bytes_to_uint64(data: bytes) -> uint64: + + def bytes_to_uint64(data: bytes) -> Uint64: """ Return the integer deserialization of ``data`` interpreted as ``ENDIANNESS``-endian. """ - return uint64(int.from_bytes(data, ENDIANNESS)) + return Uint64(int.from_bytes(data, ENDIANNESS)) - name: calculate_committee_fraction#phase0 @@ -488,8 +488,8 @@ - file: packages/fork-choice/src/forkChoice/forkChoice.ts search: export function getCommitteeFraction( spec: | - - def calculate_committee_fraction(state: BeaconState, committee_percent: uint64) -> Gwei: + + def calculate_committee_fraction(state: BeaconState, committee_percent: Uint64) -> Gwei: committee_weight = get_total_active_balance(state) // SLOTS_PER_EPOCH return Gwei((committee_weight * committee_percent) // 100) @@ -568,23 +568,23 @@ - file: packages/params/src/index.ts search: export const ATTESTATION_SUBNET_PREFIX_BITS = spec: | - - def compute_attestation_subnet_prefix_bits() -> uint64: + + def compute_attestation_subnet_prefix_bits() -> Uint64: """ Return the number of NodeId bits to use when mapping to a subscribed subnet. """ - return uint64(ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS) + return Uint64(ceillog2(ATTESTATION_SUBNET_COUNT) + ATTESTATION_SUBNET_EXTRA_BITS) - name: compute_balance_weighted_selection#gloas sources: [] spec: | - + def compute_balance_weighted_selection( state: BeaconState, indices: Sequence[ValidatorIndex], seed: Bytes32, - size: uint64, + size: Uint64, shuffle_indices: bool, ) -> Sequence[ValidatorIndex]: """ @@ -594,11 +594,11 @@ ``indices`` is traversed in order. The returned list can contain duplicates. """ MAX_RANDOM_VALUE = 2**16 - 1 - total = uint64(len(indices)) + total = Uint64(len(indices)) assert total > 0 effective_balances = [state.validators[index].effective_balance for index in indices] selected: List[ValidatorIndex] = [] - i = uint64(0) + i = Uint64(0) while len(selected) < size: offset = i % 16 * 2 if offset == 0: @@ -634,17 +634,17 @@ - file: packages/state-transition/src/util/epochShuffling.ts search: function buildCommitteesFromShuffling( spec: | - + def compute_committee( - indices: Sequence[ValidatorIndex], seed: Bytes32, index: uint64, count: uint64 + indices: Sequence[ValidatorIndex], seed: Bytes32, index: Uint64, count: Uint64 ) -> Sequence[ValidatorIndex]: """ Return the committee corresponding to ``indices``, ``seed``, ``index``, and committee ``count``. """ start = (len(indices) * index) // count - end = (len(indices) * uint64(index + 1)) // count + end = (len(indices) * Uint64(index + 1)) // count return [ - indices[compute_shuffled_index(uint64(i), uint64(len(indices)), seed)] + indices[compute_shuffled_index(Uint64(i), Uint64(len(indices)), seed)] for i in range(start, end) ] @@ -862,7 +862,7 @@ - file: packages/config/src/genesisConfig/index.ts search: export function computeForkDigest( spec: | - + def compute_fork_digest( genesis_validators_root: Root, epoch: Epoch, @@ -888,8 +888,8 @@ xor( base_digest, hash( - uint_to_bytes(uint64(blob_parameters.epoch)) - + uint_to_bytes(uint64(blob_parameters.max_blobs_per_block)) + uint_to_bytes(Uint64(blob_parameters.epoch)) + + uint_to_bytes(Uint64(blob_parameters.max_blobs_per_block)) ), ) )[:4] @@ -1112,7 +1112,7 @@ - file: packages/beacon-node/src/util/dataColumns.ts search: export async function getCellsAndProofs( spec: | - + def compute_matrix(blobs: Sequence[Blob]) -> Sequence[MatrixEntry]: """ Return the full, flattened sequence of matrix entries. @@ -1122,7 +1122,7 @@ """ matrix = [] for blob_index, blob in enumerate(blobs): - cells, proofs = compute_cells_and_kzg_proofs(blob) + cells, proofs = kzg.compute_cells_and_kzg_proofs(blob) for cell_index, (cell, proof) in enumerate(zip(cells, proofs, strict=True)): matrix.append( MatrixEntry( @@ -1138,43 +1138,43 @@ - name: compute_max_request_blob_sidecars#deneb sources: [] spec: | - - def compute_max_request_blob_sidecars() -> uint64: + + def compute_max_request_blob_sidecars() -> Uint64: """ Return the maximum number of blob sidecars in a single request. """ - return uint64(MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK) + return Uint64(MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK) - name: compute_max_request_blob_sidecars#electra sources: [] spec: | - - def compute_max_request_blob_sidecars() -> uint64: + + def compute_max_request_blob_sidecars() -> Uint64: """ Return the maximum number of blob sidecars in a single request. """ # [Modified in Electra:EIP7691] - return uint64(MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA) + return Uint64(MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA) - name: compute_max_request_data_column_sidecars#fulu sources: [] spec: | - - def compute_max_request_data_column_sidecars() -> uint64: + + def compute_max_request_data_column_sidecars() -> Uint64: """ Return the maximum number of data column sidecars in a single request. """ - return uint64(MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS) + return Uint64(MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS) - name: compute_merkle_branch_root#phase0 sources: [] spec: | - + def compute_merkle_branch_root( - leaf: Bytes32, branch: Sequence[Bytes32], depth: uint64, index: uint64 + leaf: Bytes32, branch: Sequence[Bytes32], depth: Uint64, index: Uint64 ) -> Root: """ Return the Merkle root obtained by hashing ``leaf`` at ``index`` with ``branch``. @@ -1191,12 +1191,12 @@ - name: compute_min_epochs_for_block_requests#phase0 sources: [] spec: | - - def compute_min_epochs_for_block_requests() -> uint64: + + def compute_min_epochs_for_block_requests() -> Uint64: """ Return the minimum epoch range over which a node must serve blocks. """ - return uint64(MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2) + return Uint64(MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2) - name: compute_new_state_root#phase0 @@ -1215,7 +1215,7 @@ - name: compute_on_chain_aggregate#electra sources: [] spec: | - + def compute_on_chain_aggregate(network_aggregates: Sequence[Attestation]) -> Attestation: aggregates = sorted( network_aggregates, key=lambda a: get_committee_indices(a.committee_bits)[0] @@ -1231,7 +1231,7 @@ committee_indices = [get_committee_indices(a.committee_bits)[0] for a in aggregates] committee_flags = [(index in committee_indices) for index in range(MAX_COMMITTEES_PER_SLOT)] - committee_bits = Bitvector[MAX_COMMITTEES_PER_SLOT](committee_flags) + committee_bits = BitVector[MAX_COMMITTEES_PER_SLOT](committee_flags) return Attestation( aggregation_bits=aggregation_bits, @@ -1246,7 +1246,7 @@ - file: packages/state-transition/src/util/seed.ts search: export function computeProposerIndex( spec: | - + def compute_proposer_index( state: BeaconState, indices: Sequence[ValidatorIndex], seed: Bytes32 ) -> ValidatorIndex: @@ -1255,11 +1255,11 @@ """ assert len(indices) > 0 MAX_RANDOM_BYTE = 2**8 - 1 - i = uint64(0) - total = uint64(len(indices)) + i = Uint64(0) + total = Uint64(len(indices)) while True: candidate_index = indices[compute_shuffled_index(i % total, total, seed)] - random_byte = hash(seed + uint_to_bytes(uint64(i // 32)))[i % 32] + random_byte = hash(seed + uint_to_bytes(Uint64(i // 32)))[i % 32] effective_balance = state.validators[candidate_index].effective_balance if effective_balance * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE * random_byte: return candidate_index @@ -1271,7 +1271,7 @@ - file: packages/state-transition/src/util/seed.ts search: export function computeProposerIndex( spec: | - + def compute_proposer_index( state: BeaconState, indices: Sequence[ValidatorIndex], seed: Bytes32 ) -> ValidatorIndex: @@ -1281,8 +1281,8 @@ assert len(indices) > 0 # [Modified in Electra] MAX_RANDOM_VALUE = 2**16 - 1 - i = uint64(0) - total = uint64(len(indices)) + i = Uint64(0) + total = Uint64(len(indices)) while True: candidate_index = indices[compute_shuffled_index(i % total, total, seed)] # [Modified in Electra] @@ -1420,8 +1420,8 @@ - file: packages/state-transition/src/util/seed.ts search: export function computeShuffledIndex( spec: | - - def compute_shuffled_index(index: uint64, index_count: uint64, seed: Bytes32) -> uint64: + + def compute_shuffled_index(index: Uint64, index_count: Uint64, seed: Bytes32) -> Uint64: """ Return the shuffled index corresponding to ``seed`` (and ``index_count``). """ @@ -1432,18 +1432,18 @@ - name: compute_shuffled_permutation#phase0 sources: [] spec: | - - def compute_shuffled_permutation(index_count: uint64, seed: Bytes32) -> Sequence[uint64]: + + def compute_shuffled_permutation(index_count: Uint64, seed: Bytes32) -> Sequence[Uint64]: """ Return the full shuffled permutation corresponding to ``seed`` (and ``index_count``). """ # Swap or not (https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf) # See the 'generalized domain' algorithm on page 3 - indices = [uint64(i) for i in range(index_count)] + indices = [Uint64(i) for i in range(index_count)] for current_round in range(SHUFFLE_ROUND_COUNT): round_bytes = current_round.to_bytes(1, "little") pivot = int.from_bytes(hash(seed + round_bytes)[0:8], "little") % index_count - source_by_bucket: Dict[uint64, Bytes32] = {} + source_by_bucket: Dict[Uint64, Bytes32] = {} for i in range(index_count): flip = (pivot + index_count - indices[i]) % index_count position = max(indices[i], flip) @@ -1523,15 +1523,15 @@ - file: packages/beacon-node/src/chain/validation/attestation.ts search: export function computeSubnetForSlot( spec: | - + def compute_subnet_for_attestation( - committees_per_slot: uint64, slot: Slot, committee_index: CommitteeIndex + committees_per_slot: Uint64, slot: Slot, committee_index: CommitteeIndex ) -> SubnetID: """ Compute the correct subnet for an attestation for Phase 0. Note, this mimics expected future behavior where attestations will be mapped to their shard subnet. """ - slots_since_epoch_start = uint64(slot % SLOTS_PER_EPOCH) + slots_since_epoch_start = Uint64(slot % SLOTS_PER_EPOCH) committees_since_epoch_start = committees_per_slot * slots_since_epoch_start return SubnetID((committees_since_epoch_start + committee_index) % ATTESTATION_SUBNET_COUNT) @@ -1597,13 +1597,13 @@ - file: packages/beacon-node/src/network/subnets/util.ts search: export function computeSubscribedSubnetByIndex( spec: | - + def compute_subscribed_subnet(node_id: NodeID, epoch: Epoch, index: int) -> SubnetID: prefix_bits = int(compute_attestation_subnet_prefix_bits()) - node_id_prefix = node_id >> (NODE_ID_BITS - prefix_bits) - node_offset = node_id % EPOCHS_PER_SUBNET_SUBSCRIPTION + node_id_prefix = node_id >> int(NODE_ID_BITS - prefix_bits) + node_offset = Uint64(node_id % Uint256(EPOCHS_PER_SUBNET_SUBSCRIPTION)) permutation_seed = hash( - uint_to_bytes(uint64((epoch + node_offset) // EPOCHS_PER_SUBNET_SUBSCRIPTION)) + uint_to_bytes(Uint64((epoch + node_offset) // EPOCHS_PER_SUBNET_SUBSCRIPTION)) ) permutated_prefix = compute_shuffled_index( node_id_prefix, @@ -1628,8 +1628,8 @@ - file: packages/state-transition/src/util/epoch.ts search: export function computeSyncPeriodAtEpoch( spec: | - - def compute_sync_committee_period(epoch: Epoch) -> uint64: + + def compute_sync_committee_period(epoch: Epoch) -> Uint64: return epoch // EPOCHS_PER_SYNC_COMMITTEE_PERIOD @@ -1638,8 +1638,8 @@ - file: packages/state-transition/src/util/epoch.ts search: export function computeSyncPeriodAtSlot( spec: | - - def compute_sync_committee_period_at_slot(slot: Slot) -> uint64: + + def compute_sync_committee_period_at_slot(slot: Slot) -> Uint64: return compute_sync_committee_period(compute_epoch_at_slot(slot)) @@ -1648,10 +1648,10 @@ - file: packages/state-transition/src/util/slot.ts search: export function computeTimeAtSlot( spec: | - - def compute_time_at_slot(state: BeaconState, slot: Slot) -> uint64: + + def compute_time_at_slot(state: BeaconState, slot: Slot) -> Uint64: slots_since_genesis = slot - GENESIS_SLOT - return uint64(state.genesis_time + slots_since_genesis * SLOT_DURATION_MS // 1000) + return Uint64(state.genesis_time + slots_since_genesis * SLOT_DURATION_MS // 1000) - name: compute_weak_subjectivity_period#phase0 @@ -1659,8 +1659,8 @@ - file: packages/state-transition/src/util/weakSubjectivity.ts search: export function computeWeakSubjectivityPeriod( spec: | - - def compute_weak_subjectivity_period(state: BeaconState) -> uint64: + + def compute_weak_subjectivity_period(state: BeaconState) -> Uint64: """ Returns the weak subjectivity period for the current ``state``. This computation takes into account the effect of: @@ -1694,8 +1694,8 @@ - file: packages/state-transition/src/util/weakSubjectivity.ts search: export function computeWeakSubjectivityPeriod( spec: | - - def compute_weak_subjectivity_period(state: BeaconState) -> uint64: + + def compute_weak_subjectivity_period(state: BeaconState) -> Uint64: """ Returns the weak subjectivity period for the current ``state``. This computation takes into account the effect of: @@ -1712,8 +1712,8 @@ - name: compute_weak_subjectivity_period#gloas sources: [] spec: | - - def compute_weak_subjectivity_period(state: BeaconState) -> uint64: + + def compute_weak_subjectivity_period(state: BeaconState) -> Uint64: """ Returns the weak subjectivity period for the current ``state``. This computation takes into account the effect of: @@ -2291,8 +2291,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getAggregateDueMs(fork: ForkName): number {" spec: | - - def get_aggregate_due_ms() -> uint64: + + def get_aggregate_due_ms() -> Uint64: return get_slot_component_duration_ms(AGGREGATE_DUE_BPS) @@ -2301,8 +2301,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getAggregateDueMs(fork: ForkName): number {" spec: | - - def get_aggregate_due_ms() -> uint64: + + def get_aggregate_due_ms() -> Uint64: # [Modified in Gloas] return get_slot_component_duration_ms(AGGREGATE_DUE_BPS_GLOAS) @@ -2372,7 +2372,7 @@ - name: get_attestation_component_deltas#phase0 sources: [] spec: | - + def get_attestation_component_deltas( state: BeaconState, attestations: Sequence[PendingAttestation] ) -> Tuple[Sequence[Gwei], Sequence[Gwei]]: @@ -2386,7 +2386,7 @@ attesting_balance = get_total_balance(state, unslashed_attesting_indices) for index in get_eligible_validator_indices(state): if index in unslashed_attesting_indices: - increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from balance totals to avoid uint64 overflow + increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from balance totals to avoid Uint64 overflow if is_in_inactivity_leak(state): # Since full base reward will be canceled out by inactivity penalty deltas, # optimal participation receives full base reward compensation here. @@ -2433,8 +2433,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getAttestationDueMs(fork: ForkName): number {" spec: | - - def get_attestation_due_ms() -> uint64: + + def get_attestation_due_ms() -> Uint64: return get_slot_component_duration_ms(ATTESTATION_DUE_BPS) @@ -2443,8 +2443,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getAttestationDueMs(fork: ForkName): number {" spec: | - - def get_attestation_due_ms() -> uint64: + + def get_attestation_due_ms() -> Uint64: # [Modified in Gloas] return get_slot_component_duration_ms(ATTESTATION_DUE_BPS_GLOAS) @@ -2454,9 +2454,9 @@ - file: packages/state-transition/src/block/processAttestationsAltair.ts search: export function getAttestationParticipationStatus( spec: | - + def get_attestation_participation_flag_indices( - state: BeaconState, data: AttestationData, inclusion_delay: uint64 + state: BeaconState, data: AttestationData, inclusion_delay: Uint64 ) -> Sequence[int]: """ Return the flag indices that are satisfied by an attestation. @@ -2496,9 +2496,9 @@ - file: packages/state-transition/src/block/processAttestationsAltair.ts search: export function getAttestationParticipationStatus( spec: | - + def get_attestation_participation_flag_indices( - state: BeaconState, data: AttestationData, inclusion_delay: uint64 + state: BeaconState, data: AttestationData, inclusion_delay: Uint64 ) -> Sequence[int]: """ Return the flag indices that are satisfied by an attestation. @@ -2537,9 +2537,13 @@ - name: get_attestation_participation_flag_indices#gloas sources: [] spec: | - + def get_attestation_participation_flag_indices( - state: BeaconState, data: AttestationData, inclusion_delay: uint64 + state: BeaconState, + data: AttestationData, + inclusion_delay: Uint64, + # [New in Gloas:EIP7732] + parent_slot: Slot, ) -> Sequence[int]: """ Return the flag indices that are satisfied by an attestation. @@ -2561,7 +2565,7 @@ assert data.index == 0 payload_matches = True else: - slot_index = data.slot % SLOTS_PER_HISTORICAL_ROOT + slot_index = parent_slot % SLOTS_PER_HISTORICAL_ROOT payload_index = state.execution_payload_availability[slot_index] payload_matches = data.index == payload_index @@ -3011,29 +3015,29 @@ - file: packages/state-transition/src/util/gloas.ts search: export function getBuilderPaymentQuorumThreshold( spec: | - - def get_builder_payment_quorum_threshold(state: BeaconState) -> uint64: + + def get_builder_payment_quorum_threshold(state: BeaconState) -> Uint64: """ Calculate the quorum threshold for builder payments. """ per_slot_balance = get_total_active_balance(state) // SLOTS_PER_EPOCH quorum = per_slot_balance * BUILDER_PAYMENT_THRESHOLD_NUMERATOR - return uint64(quorum // BUILDER_PAYMENT_THRESHOLD_DENOMINATOR) + return Uint64(quorum // BUILDER_PAYMENT_THRESHOLD_DENOMINATOR) - name: get_builder_withdrawals#gloas sources: [] spec: | - + def get_builder_withdrawals( state: BeaconState, withdrawal_index: WithdrawalIndex, prior_withdrawals: Sequence[Withdrawal], - ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, uint64]: + ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, Uint64]: withdrawals_limit = MAX_WITHDRAWALS_PER_PAYLOAD - 1 assert len(prior_withdrawals) <= withdrawals_limit - processed_count: uint64 = 0 + processed_count: Uint64 = 0 withdrawals: List[Withdrawal] = [] for withdrawal in state.builder_pending_withdrawals: all_withdrawals = prior_withdrawals + withdrawals @@ -3059,18 +3063,18 @@ - name: get_builders_sweep_withdrawals#gloas sources: [] spec: | - + def get_builders_sweep_withdrawals( state: BeaconState, withdrawal_index: WithdrawalIndex, prior_withdrawals: Sequence[Withdrawal], - ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, uint64]: + ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, Uint64]: epoch = get_current_epoch(state) builders_limit = min(len(state.builders), MAX_BUILDERS_PER_WITHDRAWALS_SWEEP) withdrawals_limit = MAX_WITHDRAWALS_PER_PAYLOAD - 1 assert len(prior_withdrawals) <= withdrawals_limit - processed_count: uint64 = 0 + processed_count: Uint64 = 0 withdrawals: List[Withdrawal] = [] builder_index = state.next_withdrawal_builder_index for _ in range(builders_limit): @@ -3170,16 +3174,16 @@ - file: packages/state-transition/src/util/epochShuffling.ts search: export function computeCommitteeCount( spec: | - - def get_committee_count_per_slot(state: BeaconState, epoch: Epoch) -> uint64: + + def get_committee_count_per_slot(state: BeaconState, epoch: Epoch) -> Uint64: """ Return the number of committees in each slot for the given ``epoch``. """ return max( - uint64(1), + Uint64(1), min( MAX_COMMITTEES_PER_SLOT, - uint64(len(get_active_validator_indices(state, epoch))) + Uint64(len(get_active_validator_indices(state, epoch))) // SLOTS_PER_EPOCH // TARGET_COMMITTEE_SIZE, ), @@ -3189,8 +3193,8 @@ - name: get_committee_indices#electra sources: [] spec: | - - def get_committee_indices(committee_bits: Bitvector) -> Sequence[CommitteeIndex]: + + def get_committee_indices(committee_bits: BitVector) -> Sequence[CommitteeIndex]: return [CommitteeIndex(index) for index, bit in enumerate(committee_bits) if bit] @@ -3267,8 +3271,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getSyncContributionDueMs(fork: ForkName): number {" spec: | - - def get_contribution_due_ms() -> uint64: + + def get_contribution_due_ms() -> Uint64: return get_slot_component_duration_ms(CONTRIBUTION_DUE_BPS) @@ -3277,8 +3281,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getSyncContributionDueMs(fork: ForkName): number {" spec: | - - def get_contribution_due_ms() -> uint64: + + def get_contribution_due_ms() -> Uint64: # [Modified in Gloas] return get_slot_component_duration_ms(CONTRIBUTION_DUE_BPS_GLOAS) @@ -3374,15 +3378,15 @@ - file: packages/beacon-node/src/util/dataColumns.ts search: export function getCustodyGroups( spec: | - - def get_custody_groups(node_id: NodeID, custody_group_count: uint64) -> Sequence[CustodyIndex]: + + def get_custody_groups(node_id: NodeID, custody_group_count: Uint64) -> Sequence[CustodyIndex]: assert custody_group_count <= NUMBER_OF_CUSTODY_GROUPS # Skip computation if all groups are custodied if custody_group_count == NUMBER_OF_CUSTODY_GROUPS: return [CustodyIndex(i) for i in range(NUMBER_OF_CUSTODY_GROUPS)] - current_id = uint256(node_id) + current_id = Uint256(node_id) custody_groups: List[CustodyIndex] = [] while len(custody_groups) < custody_group_count: custody_group = CustodyIndex( @@ -3392,7 +3396,7 @@ custody_groups.append(custody_group) if current_id == UINT256_MAX: # Overflow prevention - current_id = uint256(0) + current_id = Uint256(0) else: current_id += 1 @@ -3668,15 +3672,15 @@ - name: get_eth1_pending_deposit_count#electra sources: [] spec: | - - def get_eth1_pending_deposit_count(state: BeaconState) -> uint64: + + def get_eth1_pending_deposit_count(state: BeaconState) -> Uint64: eth1_deposit_index_limit = min( state.eth1_data.deposit_count, state.deposit_requests_start_index ) if state.eth1_deposit_index < eth1_deposit_index_limit: return min(MAX_DEPOSITS, eth1_deposit_index_limit - state.eth1_deposit_index) else: - return uint64(0) + return Uint64(0) - name: get_eth1_vote#phase0 @@ -4101,8 +4105,8 @@ - file: packages/state-transition/src/util/finality.ts search: export function getFinalityDelay( spec: | - - def get_finality_delay(state: BeaconState) -> uint64: + + def get_finality_delay(state: BeaconState) -> Uint64: return get_previous_epoch(state) - state.finalized_checkpoint.epoch @@ -4144,7 +4148,7 @@ - name: get_forkchoice_store#phase0 sources: [] spec: | - + def get_forkchoice_store(anchor_state: BeaconState, anchor_block: BeaconBlock) -> Store: assert anchor_block.state_root == hash_tree_root(anchor_state) anchor_root = hash_tree_root(anchor_block) @@ -4153,7 +4157,7 @@ finalized_checkpoint = Checkpoint(epoch=anchor_epoch, root=anchor_root) proposer_boost_root = Root() return Store( - time=uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), + time=Uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), genesis_time=anchor_state.genesis_time, justified_checkpoint=justified_checkpoint, finalized_checkpoint=finalized_checkpoint, @@ -4171,7 +4175,7 @@ - name: get_forkchoice_store#gloas sources: [] spec: | - + def get_forkchoice_store(anchor_state: BeaconState, anchor_block: BeaconBlock) -> Store: assert anchor_block.state_root == hash_tree_root(anchor_state) anchor_root = hash_tree_root(anchor_block) @@ -4180,7 +4184,7 @@ finalized_checkpoint = Checkpoint(epoch=anchor_epoch, root=anchor_root) proposer_boost_root = Root() return Store( - time=uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), + time=Uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), genesis_time=anchor_state.genesis_time, justified_checkpoint=justified_checkpoint, finalized_checkpoint=finalized_checkpoint, @@ -4206,7 +4210,7 @@ - name: get_forkchoice_store#heze sources: [] spec: | - + def get_forkchoice_store(anchor_state: BeaconState, anchor_block: BeaconBlock) -> Store: assert anchor_block.state_root == hash_tree_root(anchor_state) anchor_root = hash_tree_root(anchor_block) @@ -4215,7 +4219,7 @@ finalized_checkpoint = Checkpoint(epoch=anchor_epoch, root=anchor_root) proposer_boost_root = Root() return Store( - time=uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), + time=Uint64(anchor_state.genesis_time + SLOT_DURATION_MS * anchor_state.slot // 1000), genesis_time=anchor_state.genesis_time, justified_checkpoint=justified_checkpoint, finalized_checkpoint=finalized_checkpoint, @@ -4416,12 +4420,12 @@ - name: get_inclusion_list_bits#heze sources: [] spec: | - + def get_inclusion_list_bits( store: InclusionListStore, state: BeaconState, slot: Slot, only_timely: bool = True - ) -> Bitvector[INCLUSION_LIST_COMMITTEE_SIZE]: + ) -> BitVector[INCLUSION_LIST_COMMITTEE_SIZE]: """ - Return a ``Bitvector`` over inclusion list committee indices with bits set + Return a ``BitVector`` over inclusion list committee indices with bits set for those who provided valid, non-equivocating inclusion lists for the given ``slot``. """ committee = get_inclusion_list_committee(state, slot) @@ -4432,13 +4436,13 @@ timeliness = store.inclusion_list_timeliness validator_indices = [ - inclusion_lists[inclusion_list_root].validator_index + inclusion_lists[inclusion_list_root].message.validator_index for inclusion_list_root in inclusion_lists - if inclusion_lists[inclusion_list_root].validator_index not in equivocators + if inclusion_lists[inclusion_list_root].message.validator_index not in equivocators if not only_timely or timeliness[inclusion_list_root] ] - return Bitvector[INCLUSION_LIST_COMMITTEE_SIZE]( + return BitVector[INCLUSION_LIST_COMMITTEE_SIZE]( validator_index in validator_indices for validator_index in committee ) @@ -4490,8 +4494,8 @@ - name: get_inclusion_list_due_ms#heze sources: [] spec: | - - def get_inclusion_list_due_ms() -> uint64: + + def get_inclusion_list_due_ms() -> Uint64: return get_slot_component_duration_ms(INCLUSION_LIST_DUE_BPS) @@ -4525,7 +4529,7 @@ - name: get_inclusion_list_transactions#heze sources: [] spec: | - + def get_inclusion_list_transactions( store: InclusionListStore, state: BeaconState, slot: Slot, only_timely: bool = True ) -> Sequence[Transaction]: @@ -4539,9 +4543,9 @@ transactions = [ transaction for inclusion_list_root in inclusion_lists - if inclusion_lists[inclusion_list_root].validator_index not in equivocators + if inclusion_lists[inclusion_list_root].message.validator_index not in equivocators if not only_timely or timeliness[inclusion_list_root] - for transaction in inclusion_lists[inclusion_list_root].transactions + for transaction in inclusion_lists[inclusion_list_root].message.transactions ] # Deduplicate inclusion list transactions. Order does not need to be preserved. @@ -4890,7 +4894,7 @@ - file: packages/state-transition/src/util/seed.ts search: export function getNextSyncCommitteeIndices( spec: | - + def get_next_sync_committee_indices(state: BeaconState) -> Sequence[ValidatorIndex]: """ Return the sync committee indices, with possible duplicates, for the next sync committee. @@ -4899,16 +4903,16 @@ MAX_RANDOM_BYTE = 2**8 - 1 active_validator_indices = get_active_validator_indices(state, epoch) - active_validator_count = uint64(len(active_validator_indices)) + active_validator_count = Uint64(len(active_validator_indices)) seed = get_seed(state, epoch, DOMAIN_SYNC_COMMITTEE) i = 0 sync_committee_indices: List[ValidatorIndex] = [] while len(sync_committee_indices) < SYNC_COMMITTEE_SIZE: shuffled_index = compute_shuffled_index( - uint64(i % active_validator_count), active_validator_count, seed + Uint64(i % active_validator_count), active_validator_count, seed ) candidate_index = active_validator_indices[shuffled_index] - random_byte = hash(seed + uint_to_bytes(uint64(i // 32)))[i % 32] + random_byte = hash(seed + uint_to_bytes(Uint64(i // 32)))[i % 32] effective_balance = state.validators[candidate_index].effective_balance if effective_balance * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE * random_byte: sync_committee_indices.append(candidate_index) @@ -4921,7 +4925,7 @@ - file: packages/state-transition/src/util/seed.ts search: export function getNextSyncCommitteeIndices( spec: | - + def get_next_sync_committee_indices(state: BeaconState) -> Sequence[ValidatorIndex]: """ Return the sync committee indices, with possible duplicates, for the next sync committee. @@ -4931,13 +4935,13 @@ # [Modified in Electra] MAX_RANDOM_VALUE = 2**16 - 1 active_validator_indices = get_active_validator_indices(state, epoch) - active_validator_count = uint64(len(active_validator_indices)) + active_validator_count = Uint64(len(active_validator_indices)) seed = get_seed(state, epoch, DOMAIN_SYNC_COMMITTEE) - i = uint64(0) + i = Uint64(0) sync_committee_indices: List[ValidatorIndex] = [] while len(sync_committee_indices) < SYNC_COMMITTEE_SIZE: shuffled_index = compute_shuffled_index( - uint64(i % active_validator_count), active_validator_count, seed + Uint64(i % active_validator_count), active_validator_count, seed ) candidate_index = active_validator_indices[shuffled_index] # [Modified in Electra] @@ -5034,8 +5038,8 @@ - name: get_payload_attestation_due_ms#gloas sources: [] spec: | - - def get_payload_attestation_due_ms() -> uint64: + + def get_payload_attestation_due_ms() -> Uint64: return get_slot_component_duration_ms(PAYLOAD_ATTESTATION_DUE_BPS) @@ -5056,16 +5060,16 @@ - file: packages/config/src/forkConfig/index.ts search: "getPayloadDueMs(): number {" spec: | - - def get_payload_due_ms() -> uint64: + + def get_payload_due_ms() -> Uint64: return get_slot_component_duration_ms(PAYLOAD_DUE_BPS) - name: get_payload_status_tiebreaker#gloas sources: [] spec: | - - def get_payload_status_tiebreaker(store: Store, node: ForkChoiceNode) -> uint8: + + def get_payload_status_tiebreaker(store: Store, node: ForkChoiceNode) -> Uint8: if is_previous_slot_payload_decision(store, node): # To decide on a payload from the previous slot, choose # between FULL and EMPTY based on `should_extend_payload` @@ -5127,12 +5131,12 @@ - name: get_pending_partial_withdrawals#electra sources: [] spec: | - + def get_pending_partial_withdrawals( state: BeaconState, withdrawal_index: WithdrawalIndex, prior_withdrawals: Sequence[Withdrawal], - ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, uint64]: + ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, Uint64]: epoch = get_current_epoch(state) withdrawals_limit = min( len(prior_withdrawals) + MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP, @@ -5140,7 +5144,7 @@ ) assert len(prior_withdrawals) <= withdrawals_limit - processed_count: uint64 = 0 + processed_count: Uint64 = 0 withdrawals: List[Withdrawal] = [] for withdrawal in state.pending_partial_withdrawals: all_withdrawals = prior_withdrawals + withdrawals @@ -5341,8 +5345,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getProposerReorgCutoffMs(_fork: ForkName): number {" spec: | - - def get_proposer_reorg_cutoff_ms() -> uint64: + + def get_proposer_reorg_cutoff_ms() -> Uint64: return get_slot_component_duration_ms(PROPOSER_REORG_CUTOFF_BPS) @@ -5461,8 +5465,8 @@ - file: packages/state-transition/src/lightClient/spec/utils.ts search: export function getSafetyThreshold( spec: | - - def get_safety_threshold(store: LightClientStore) -> uint64: + + def get_safety_threshold(store: LightClientStore) -> Uint64: return ( max( store.previous_max_active_participants, @@ -5529,7 +5533,7 @@ - file: packages/state-transition/src/signatureSets/proposerPreferences.ts search: export function getProposerPreferencesSigningRoot( spec: | - + def get_signed_proposer_preferences( store: Store, state: BeaconState, @@ -5537,7 +5541,7 @@ proposal_slot: Slot, validator_index: ValidatorIndex, fee_recipient: ExecutionAddress, - target_gas_limit: uint64, + target_gas_limit: Uint64, privkey: int, ) -> SignedProposerPreferences: proposal_epoch = compute_epoch_at_slot(proposal_slot) @@ -5577,8 +5581,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getSlotComponentDurationMs(basisPoints: number): number {" spec: | - - def get_slot_component_duration_ms(basis_points: uint64) -> uint64: + + def get_slot_component_duration_ms(basis_points: Uint64) -> Uint64: """ Calculate the duration of a slot component in milliseconds. """ @@ -5624,9 +5628,9 @@ - name: get_subtree_index#altair sources: [] spec: | - - def get_subtree_index(generalized_index: GeneralizedIndex) -> uint64: - return uint64(generalized_index % 2 ** (floorlog2(generalized_index))) + + def get_subtree_index(generalized_index: GeneralizedIndex) -> Uint64: + return Uint64(generalized_index % 2 ** (floorlog2(generalized_index))) - name: get_support_discount#phase0 @@ -5703,9 +5707,9 @@ - file: packages/validator/src/services/validatorStore.ts search: async signSyncCommitteeSelectionProof( spec: | - + def get_sync_committee_selection_proof( - state: BeaconState, slot: Slot, subcommittee_index: uint64, privkey: int + state: BeaconState, slot: Slot, subcommittee_index: Uint64, privkey: int ) -> BLSSignature: domain = get_domain(state, DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF, compute_epoch_at_slot(slot)) signing_data = SyncAggregatorSelectionData( @@ -5721,8 +5725,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getSyncMessageDueMs(fork: ForkName): number {" spec: | - - def get_sync_message_due_ms() -> uint64: + + def get_sync_message_due_ms() -> Uint64: return get_slot_component_duration_ms(SYNC_MESSAGE_DUE_BPS) @@ -5731,8 +5735,8 @@ - file: packages/config/src/forkConfig/index.ts search: "getSyncMessageDueMs(fork: ForkName): number {" spec: | - - def get_sync_message_due_ms() -> uint64: + + def get_sync_message_due_ms() -> Uint64: # [Modified in Gloas] return get_slot_component_duration_ms(SYNC_MESSAGE_DUE_BPS_GLOAS) @@ -5740,9 +5744,9 @@ - name: get_sync_subcommittee_pubkeys#altair sources: [] spec: | - + def get_sync_subcommittee_pubkeys( - state: BeaconState, subcommittee_index: uint64 + state: BeaconState, subcommittee_index: Uint64 ) -> Sequence[BLSPubkey]: # Committees assigned to `slot` sign for `slot - 1` # This creates the exceptional logic below when transitioning between sync committee periods @@ -5808,12 +5812,12 @@ - file: packages/state-transition/src/util/balance.ts search: export function getTotalBalance( spec: | - + def get_total_balance(state: BeaconState, indices: Set[ValidatorIndex]) -> Gwei: """ Return the combined effective balance of the ``indices``. ``EFFECTIVE_BALANCE_INCREMENT`` Gwei minimum to avoid divisions by zero. - Math safe up to ~10B ETH, after which this overflows uint64. + Math safe up to ~10B ETH, after which this overflows Uint64. """ return Gwei( max( @@ -5885,8 +5889,8 @@ - file: packages/state-transition/src/util/validator.ts search: export function getValidatorActivationChurnLimit( spec: | - - def get_validator_activation_churn_limit(state: BeaconState) -> uint64: + + def get_validator_activation_churn_limit(state: BeaconState) -> Uint64: """ Return the validator activation churn limit for the current epoch. """ @@ -5898,14 +5902,14 @@ - file: packages/state-transition/src/util/validator.ts search: export function getChurnLimit( spec: | - - def get_validator_churn_limit(state: BeaconState) -> uint64: + + def get_validator_churn_limit(state: BeaconState) -> Uint64: """ Return the validator churn limit for the current epoch. """ active_validator_indices = get_active_validator_indices(state, get_current_epoch(state)) return max( - MIN_PER_EPOCH_CHURN_LIMIT, uint64(len(active_validator_indices)) // CHURN_LIMIT_QUOTIENT + MIN_PER_EPOCH_CHURN_LIMIT, Uint64(len(active_validator_indices)) // CHURN_LIMIT_QUOTIENT ) @@ -5914,9 +5918,9 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function addValidatorToRegistry( spec: | - + def get_validator_from_deposit( - pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64 + pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64 ) -> Validator: effective_balance = min(amount - amount % EFFECTIVE_BALANCE_INCREMENT, MAX_EFFECTIVE_BALANCE) @@ -5937,9 +5941,9 @@ - file: packages/state-transition/src/block/processDeposit.ts search: export function addValidatorToRegistry( spec: | - + def get_validator_from_deposit( - pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64 + pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64 ) -> Validator: validator = Validator( pubkey=pubkey, @@ -5966,10 +5970,10 @@ - file: packages/beacon-node/src/util/dataColumns.ts search: export function getValidatorsCustodyRequirement( spec: | - + def get_validators_custody_requirement( state: BeaconState, validator_indices: Sequence[ValidatorIndex] - ) -> uint64: + ) -> Uint64: total_node_balance = sum( state.validators[index].effective_balance for index in validator_indices ) @@ -5980,19 +5984,19 @@ - name: get_validators_sweep_withdrawals#capella sources: [] spec: | - + def get_validators_sweep_withdrawals( state: BeaconState, withdrawal_index: WithdrawalIndex, prior_withdrawals: Sequence[Withdrawal], - ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, uint64]: + ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, Uint64]: epoch = get_current_epoch(state) validators_limit = min(len(state.validators), MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP) withdrawals_limit = MAX_WITHDRAWALS_PER_PAYLOAD # There must be at least one space reserved for validator sweep withdrawals assert len(prior_withdrawals) < withdrawals_limit - processed_count: uint64 = 0 + processed_count: Uint64 = 0 withdrawals: List[Withdrawal] = [] validator_index = state.next_withdrawal_validator_index for _ in range(validators_limit): @@ -6033,19 +6037,19 @@ - name: get_validators_sweep_withdrawals#electra sources: [] spec: | - + def get_validators_sweep_withdrawals( state: BeaconState, withdrawal_index: WithdrawalIndex, prior_withdrawals: Sequence[Withdrawal], - ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, uint64]: + ) -> Tuple[Sequence[Withdrawal], WithdrawalIndex, Uint64]: epoch = get_current_epoch(state) validators_limit = min(len(state.validators), MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP) withdrawals_limit = MAX_WITHDRAWALS_PER_PAYLOAD # There must be at least one space reserved for validator sweep withdrawals assert len(prior_withdrawals) < withdrawals_limit - processed_count: uint64 = 0 + processed_count: Uint64 = 0 withdrawals: List[Withdrawal] = [] validator_index = state.next_withdrawal_validator_index for _ in range(validators_limit): @@ -6239,9 +6243,9 @@ - file: packages/state-transition/src/util/genesis.ts search: export function initializeBeaconStateFromEth1( spec: | - + def initialize_beacon_state_from_eth1( - eth1_block_hash: Hash32, eth1_timestamp: uint64, deposits: Sequence[Deposit] + eth1_block_hash: Hash32, eth1_timestamp: Uint64, deposits: Sequence[Deposit] ) -> BeaconState: fork = Fork( previous_version=GENESIS_FORK_VERSION, @@ -6251,7 +6255,7 @@ state = BeaconState( genesis_time=eth1_timestamp + GENESIS_DELAY, fork=fork, - eth1_data=Eth1Data(deposit_count=uint64(len(deposits)), block_hash=eth1_block_hash), + eth1_data=Eth1Data(deposit_count=Uint64(len(deposits)), block_hash=eth1_block_hash), latest_block_header=BeaconBlockHeader(body_root=hash_tree_root(BeaconBlockBody())), randao_mixes=[eth1_block_hash] * EPOCHS_PER_HISTORICAL_VECTOR, # Seed RANDAO with Eth1 entropy @@ -6428,8 +6432,8 @@ - file: packages/utils/src/math.ts search: export function intSqrt( spec: | - - def integer_squareroot(n: uint64) -> uint64: + + def integer_squareroot(n: Uint64) -> Uint64: """ Return the largest integer ``x`` such that ``x**2 <= n``. """ @@ -6612,6 +6616,35 @@ return new_update.signature_slot < old_update.signature_slot +- name: is_bid_compatible_with_head#gloas + sources: [] + spec: | + + def is_bid_compatible_with_head(store: Store, bid: ExecutionPayloadBid) -> bool: + """ + Check if ``bid`` is compatible with the head branch. + """ + head_node = get_head(store) + head_block = store.blocks[head_node.root] + head_bid = head_block.body.signed_execution_payload_bid.message + + builds_on_parent_block = bid.parent_block_root == head_block.parent_root + builds_on_parent_payload = bid.parent_block_hash == head_bid.parent_block_hash + + if builds_on_parent_block and builds_on_parent_payload: + return True + + if bid.parent_block_root != head_node.root: + return False + + builds_on_head_payload = bid.parent_block_hash == head_bid.block_hash + + if should_build_on_full(store, head_node, bid.slot): + return builds_on_head_payload + + return builds_on_parent_payload + + - name: is_builder_index#gloas sources: - file: packages/state-transition/src/util/gloas.ts @@ -6635,8 +6668,8 @@ - name: is_candidate_block#phase0 sources: [] spec: | - - def is_candidate_block(block: Eth1Block, period_start: uint64) -> bool: + + def is_candidate_block(block: Eth1Block, period_start: Uint64) -> bool: return ( block.timestamp + SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE <= period_start and block.timestamp + SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE * 2 >= period_start @@ -6697,14 +6730,32 @@ ) +- name: is_current_or_previous_epoch#deneb + sources: [] + spec: | + + def is_current_or_previous_epoch( + state: BeaconState, + epoch: Epoch, + current_time_ms: Uint64, + ) -> bool: + """ + Check if the given epoch is the current or previous epoch + (with MAXIMUM_GOSSIP_CLOCK_DISPARITY allowance). + """ + is_current = is_within_epoch(state, epoch, current_time_ms) + is_previous = is_within_epoch(state, Epoch(epoch + 1), current_time_ms) + return is_current or is_previous + + - name: is_current_slot#altair sources: [] spec: | - + def is_current_slot( state: BeaconState, slot: Slot, - current_time_ms: uint64, + current_time_ms: Uint64, ) -> bool: """ Check if the given slot is the current slot @@ -6718,7 +6769,7 @@ - file: packages/beacon-node/src/chain/blocks/verifyBlocksDataAvailability.ts search: export async function verifyBlocksDataAvailability( spec: | - + def is_data_available( beacon_block_root: Root, blob_kzg_commitments: Sequence[KZGCommitment] ) -> bool: @@ -6728,7 +6779,7 @@ # `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` blobs, proofs = retrieve_blobs_and_proofs(beacon_block_root) - return verify_blob_kzg_proof_batch(blobs, blob_kzg_commitments, proofs) + return kzg.verify_blob_kzg_proof_batch(blobs, blob_kzg_commitments, proofs) - name: is_data_available#fulu @@ -6896,13 +6947,13 @@ - name: is_full_validator_set_covered#phase0 sources: [] spec: | - + def is_full_validator_set_covered(start_slot: Slot, end_slot: Slot) -> bool: """ Return ``True`` if the range between ``start_slot`` and ``end_slot`` (inclusive of both) includes an entire epoch. """ - start_full_epoch = compute_epoch_at_slot(start_slot + (SLOTS_PER_EPOCH - 1)) - end_full_epoch = compute_epoch_at_slot(Slot(end_slot + 1)) + start_full_epoch = compute_epoch_at_slot(start_slot + SLOTS_PER_EPOCH - Slot(1)) + end_full_epoch = compute_epoch_at_slot(end_slot + Slot(1)) return start_full_epoch < end_full_epoch @@ -6942,9 +6993,9 @@ - file: packages/state-transition/src/util/gloas.ts search: export function isGasLimitTargetCompatible( spec: | - + def is_gas_limit_target_compatible( - parent_gas_limit: uint64, gas_limit: uint64, target_gas_limit: uint64 + parent_gas_limit: Uint64, gas_limit: Uint64, target_gas_limit: Uint64 ) -> bool: """ Check if ``gas_limit`` is compatible with ``target_gas_limit`` under the @@ -6984,11 +7035,28 @@ - file: packages/fork-choice/src/forkChoice/forkChoice.ts search: "* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/phase0/fork-choice.md#is_head_weak" spec: | - + def is_head_weak(store: Store, head_root: Root) -> bool: + # Calculate weight threshold for weak head justified_state = store.checkpoint_states[store.justified_checkpoint] reorg_threshold = calculate_committee_fraction(justified_state, REORG_HEAD_WEIGHT_THRESHOLD) - head_weight = get_weight(store, ForkChoiceNode(root=head_root)) + + # Compute head weight including equivocations + head_state = store.block_states[head_root] + head_block = store.blocks[head_root] + epoch = compute_epoch_at_slot(head_block.slot) + head_node = ForkChoiceNode(root=head_root) + head_weight = get_attestation_score(store, head_node, justified_state) + for index in range(get_committee_count_per_slot(head_state, epoch)): + committee = get_beacon_committee(head_state, head_block.slot, CommitteeIndex(index)) + head_weight += Gwei( + sum( + justified_state.validators[i].effective_balance + for i in committee + if i in store.equivocating_indices + ) + ) + return head_weight < reorg_threshold @@ -6997,7 +7065,7 @@ - file: packages/fork-choice/src/forkChoice/forkChoice.ts search: "* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/fork-choice.md#modified-is_head_weak" spec: | - + def is_head_weak(store: Store, head_root: Root) -> bool: # Calculate weight threshold for weak head justified_state = store.checkpoint_states[store.justified_checkpoint] @@ -7007,6 +7075,7 @@ head_state = store.block_states[head_root] head_block = store.blocks[head_root] epoch = compute_epoch_at_slot(head_block.slot) + # [Modified in Gloas:EIP7732] head_node = ForkChoiceNode(root=head_root, payload_status=PAYLOAD_STATUS_PENDING) head_weight = get_attestation_score(store, head_node, justified_state) for index in range(get_committee_count_per_slot(head_state, epoch)): @@ -7035,12 +7104,12 @@ - name: is_inclusion_list_bits_inclusive#heze sources: [] spec: | - + def is_inclusion_list_bits_inclusive( store: InclusionListStore, state: BeaconState, slot: Slot, - inclusion_list_bits: Bitvector[INCLUSION_LIST_COMMITTEE_SIZE], + inclusion_list_bits: BitVector[INCLUSION_LIST_COMMITTEE_SIZE], only_timely: bool = True, ) -> bool: """ @@ -7086,10 +7155,10 @@ - name: is_non_strict_superset#phase0 sources: [] spec: | - + def is_non_strict_superset( - seen_bits_set: Set[Tuple[boolean, ...]], - new_bits: Tuple[boolean, ...], + seen_bits_set: Set[Tuple[Boolean, ...]], + new_bits: Tuple[Boolean, ...], ) -> bool: """ Return True if any prior bitset in ``seen_bits_set`` is a non-strict @@ -7166,13 +7235,13 @@ - file: packages/fork-choice/src/forkChoice/forkChoice.ts search: "* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.12/specs/phase0/fork-choice.md#is_parent_strong" spec: | - + def is_parent_strong(store: Store, root: Root) -> bool: justified_state = store.checkpoint_states[store.justified_checkpoint] parent_threshold = calculate_committee_fraction(justified_state, REORG_PARENT_WEIGHT_THRESHOLD) parent_root = store.blocks[root].parent_root parent_node = ForkChoiceNode(root=parent_root) - parent_weight = get_weight(store, parent_node) + parent_weight = get_attestation_score(store, parent_node, justified_state) return parent_weight > parent_threshold @@ -7422,14 +7491,35 @@ return bls.Verify(request.pubkey, signing_root, request.signature) +- name: is_valid_dependent_root#gloas + sources: + - file: packages/beacon-node/src/chain/validation/proposerPreferences.ts + search: export function isValidDependentRoot + spec: | + + def is_valid_dependent_root(store: Store, root: Root, epoch: Epoch) -> bool: + """ + Check if the block with the given ``root`` is a possible dependent block + for the given ``epoch``, meaning that on some branch it is, or could + become, the latest block prior to the start of the epoch. + """ + epoch_start_slot = compute_start_slot_at_epoch(epoch) + if store.blocks[root].slot >= epoch_start_slot: + return False + for block in store.blocks.values(): + if block.parent_root == root and block.slot >= epoch_start_slot: + return True + return root == get_head(store).root + + - name: is_valid_deposit_signature#electra sources: - file: packages/state-transition/src/block/processDeposit.ts search: export function isValidDepositSignature( spec: | - + def is_valid_deposit_signature( - pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: uint64, signature: BLSSignature + pubkey: BLSPubkey, withdrawal_credentials: Bytes32, amount: Uint64, signature: BLSSignature ) -> bool: deposit_message = DepositMessage( pubkey=pubkey, @@ -7589,15 +7679,15 @@ - file: packages/state-transition/src/lightClient/spec/utils.ts search: export function isValidLightClientHeader( spec: | - + def is_valid_light_client_header(header: LightClientHeader) -> bool: epoch = compute_epoch_at_slot(header.beacon.slot) # [New in Deneb:EIP4844] if epoch < DENEB_FORK_EPOCH: - if header.execution.blob_gas_used != uint64(0): + if header.execution.blob_gas_used != Uint64(0): return False - if header.execution.excess_blob_gas != uint64(0): + if header.execution.excess_blob_gas != Uint64(0): return False if epoch < CAPELLA_FORK_EPOCH: @@ -7658,9 +7748,9 @@ - file: packages/state-transition/src/lightClient/spec/utils.ts search: export function isValidMerkleBranch( spec: | - + def is_valid_merkle_branch( - leaf: Bytes32, branch: Sequence[Bytes32], depth: uint64, index: uint64, root: Root + leaf: Bytes32, branch: Sequence[Bytes32], depth: Uint64, index: Uint64, root: Root ) -> bool: """ Check if ``leaf`` at ``index`` verifies against the Merkle ``root`` and ``branch``. @@ -7756,6 +7846,27 @@ return is_total_difficulty_reached and is_parent_total_difficulty_valid +- name: is_within_epoch#deneb + sources: [] + spec: | + + def is_within_epoch( + state: BeaconState, + epoch: Epoch, + current_time_ms: Uint64, + ) -> bool: + """ + Check if the current time is within the given epoch + (with MAXIMUM_GOSSIP_CLOCK_DISPARITY allowance on both ends). + """ + return is_within_slot_range( + state, + compute_start_slot_at_epoch(epoch), + SLOTS_PER_EPOCH - 1, + current_time_ms, + ) + + - name: is_within_weak_subjectivity_period#phase0 sources: - file: packages/state-transition/src/util/weakSubjectivity.ts @@ -7820,18 +7931,18 @@ - name: max_compressed_len#phase0 sources: [] spec: | - - def max_compressed_len(n: uint64) -> uint64: + + def max_compressed_len(n: Uint64) -> Uint64: # Worst-case compressed length for a given payload of size n when using snappy: # https://github.com/google/snappy/blob/32ded457c0b1fe78ceb8397632c416568d6714a0/snappy.cc#L218C1-L218C47 - return uint64(32 + n + n / 6) + return Uint64(32 + n + n / 6) - name: max_message_size#phase0 sources: [] spec: | - - def max_message_size() -> uint64: + + def max_message_size() -> Uint64: # Allow 1024 bytes for framing and encoding overhead but at least 1MiB in case MAX_PAYLOAD_SIZE is small. return max(max_compressed_len(MAX_PAYLOAD_SIZE) + 1024, 1024 * 1024) @@ -7970,9 +8081,15 @@ search: '^\s+onBlock\(' regex: true spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states # Make a copy of the state to avoid mutability issues @@ -7993,7 +8110,6 @@ # Check the block is valid and compute the post-state state = pre_state.copy() - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # Compute head before applying the block @@ -8019,7 +8135,7 @@ search: '^\s+onBlock\(' regex: true spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: """ Run ``on_block`` upon receiving a new block. @@ -8028,6 +8144,12 @@ consider scheduling it for later processing in such case. """ block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states # Make a copy of the state to avoid mutability issues @@ -8048,7 +8170,6 @@ # Check the block is valid and compute the post-state state = pre_state.copy() - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # [New in Bellatrix] @@ -8078,12 +8199,18 @@ search: '^\s+onBlock\(' regex: true spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: """ Run ``on_block`` upon receiving a new block. """ block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states # Blocks cannot be in the future. If they are, their consideration must be delayed until they are in the past. @@ -8103,7 +8230,6 @@ # Check the block is valid and compute the post-state # Make a copy of the state to avoid mutability issues state = copy(store.block_states[block.parent_root]) - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # Compute head before applying the block @@ -8129,12 +8255,18 @@ search: '^\s+onBlock\(' regex: true spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: """ Run ``on_block`` upon receiving a new block. """ block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states # Blocks cannot be in the future. If they are, their consideration must be delayed until they are in the past. @@ -8154,12 +8286,11 @@ # [New in Deneb:EIP4844] # Check if blob data is available # If not, this payload MAY be queued and subsequently considered when blob data becomes available - assert is_data_available(hash_tree_root(block), block.body.blob_kzg_commitments) + assert is_data_available(block_root, block.body.blob_kzg_commitments) # Check the block is valid and compute the post-state # Make a copy of the state to avoid mutability issues state = copy(store.block_states[block.parent_root]) - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # Compute head before applying the block @@ -8185,12 +8316,18 @@ search: '^\s+onBlock\(' regex: true spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: """ Run ``on_block`` upon receiving a new block. """ block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states # Make a copy of the state to avoid mutability issues @@ -8212,10 +8349,9 @@ # [Modified in Fulu:EIP7594] # Check if blob data is available # If not, this payload MAY be queued and subsequently considered when blob data becomes available - assert is_data_available(hash_tree_root(block)) + assert is_data_available(block_root) # Check the block is valid and compute the post-state - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # Compute head before applying the block @@ -8238,12 +8374,18 @@ - name: on_block#gloas sources: [] spec: | - + def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: """ Run ``on_block`` upon receiving a new block. """ block = signed_block.message + block_root = hash_tree_root(block) + + # Return early if the block is already known + if block_root in store.blocks: + return + # Parent block must be known assert block.parent_root in store.block_states @@ -8271,7 +8413,6 @@ state = copy(store.block_states[block.parent_root]) # Check the block is valid and compute the post-state - block_root = hash_tree_root(block) state_transition(state, signed_block, validate_result=True) # Compute head before applying the block @@ -8370,19 +8511,17 @@ - name: on_inclusion_list#heze sources: [] spec: | - + def on_inclusion_list(store: Store, signed_inclusion_list: SignedInclusionList) -> None: """ Run ``on_inclusion_list`` upon receiving a new inclusion list. """ - inclusion_list = signed_inclusion_list.message - seconds_since_genesis = store.time - store.genesis_time time_into_slot_ms = seconds_to_milliseconds(seconds_since_genesis) % SLOT_DURATION_MS inclusion_list_due_ms = get_inclusion_list_due_ms() is_timely = time_into_slot_ms < inclusion_list_due_ms - process_inclusion_list(get_inclusion_list_store(), inclusion_list, is_timely) + process_inclusion_list(get_inclusion_list_store(), signed_inclusion_list, is_timely) - name: on_payload_attestation_message#gloas @@ -8444,8 +8583,8 @@ search: '^\s+private onTick\(' regex: true spec: | - - def on_tick(store: Store, time: uint64) -> None: + + def on_tick(store: Store, time: Uint64) -> None: # If the ``store.time`` falls behind, while loop catches up slot by slot # to ensure that every previous slot is processed with ``on_tick_per_slot`` tick_slot = (time - store.genesis_time) * 1000 // SLOT_DURATION_MS @@ -8463,8 +8602,8 @@ search: '^\s+private onTick\(' regex: true spec: | - - def on_tick_per_slot(store: Store, time: uint64) -> None: + + def on_tick_per_slot(store: Store, time: Uint64) -> None: previous_slot = get_current_slot(store) # Update store time @@ -8737,7 +8876,7 @@ - name: prepare_execution_payload#gloas sources: [] spec: | - + def prepare_execution_payload( # [New in Gloas:EIP7732] store: Store, @@ -8748,12 +8887,12 @@ finalized_block_hash: Hash32, suggested_fee_recipient: ExecutionAddress, # [New in Gloas] - target_gas_limit: uint64, + target_gas_limit: Uint64, execution_engine: ExecutionEngine, ) -> Optional[PayloadId]: # [New in Gloas:EIP7732] parent_bid = state.latest_execution_payload_bid - if should_build_on_full(store, head): + if should_build_on_full(store, head, get_current_slot(store)): envelope = store.payloads[head.root] # Make a copy of the state to avoid mutability issues state = copy(state) @@ -8790,7 +8929,7 @@ - name: prepare_execution_payload#heze sources: [] spec: | - + def prepare_execution_payload( store: Store, head: ForkChoiceNode, @@ -8798,11 +8937,11 @@ safe_block_hash: Hash32, finalized_block_hash: Hash32, suggested_fee_recipient: ExecutionAddress, - target_gas_limit: uint64, + target_gas_limit: Uint64, execution_engine: ExecutionEngine, ) -> Optional[PayloadId]: parent_bid = state.latest_execution_payload_bid - if should_build_on_full(store, head): + if should_build_on_full(store, head, get_current_slot(store)): envelope = store.payloads[head.root] # Make a copy of the state to avoid mutability issues state = copy(state) @@ -9029,8 +9168,13 @@ - name: process_attestation#gloas sources: [] spec: | - - def process_attestation(state: BeaconState, attestation: Attestation) -> None: + + def process_attestation( + state: BeaconState, + attestation: Attestation, + # [New in Gloas:EIP7732] + parent_slot: Slot, + ) -> None: data = attestation.data assert data.target.epoch in (get_previous_epoch(state), get_current_epoch(state)) assert data.target.epoch == compute_epoch_at_slot(data.slot) @@ -9055,8 +9199,9 @@ assert len(attestation.aggregation_bits) == committee_offset # Participation flag indices + # [Modified in Gloas:EIP7732] participation_flag_indices = get_attestation_participation_flag_indices( - state, data, state.slot - data.slot + state, data, state.slot - data.slot, parent_slot ) # Verify signature @@ -9241,7 +9386,7 @@ - name: process_block#gloas sources: [] spec: | - + def process_block(state: BeaconState, block: BeaconBlock) -> None: # [New in Gloas:EIP7732] process_parent_execution_payload(state, block) @@ -9251,11 +9396,11 @@ # [Modified in Gloas:EIP7732] # Removed `process_execution_payload` # [New in Gloas:EIP7732] - process_execution_payload_bid(state, block.body.signed_execution_payload_bid) + parent_slot = process_execution_payload_bid(state, block.body.signed_execution_payload_bid) process_randao(state, block.body) process_eth1_data(state, block.body) # [Modified in Gloas:EIP7732] - process_operations(state, block.body) + process_operations(state, block.body, parent_slot) process_sync_aggregate(state, block.body.sync_aggregate) @@ -9600,12 +9745,12 @@ - file: packages/state-transition/src/epoch/processEffectiveBalanceUpdates.ts search: export function processEffectiveBalanceUpdates( spec: | - + def process_effective_balance_updates(state: BeaconState) -> None: # Update effective balances with hysteresis for index, validator in enumerate(state.validators): balance = state.balances[index] - HYSTERESIS_INCREMENT = uint64(EFFECTIVE_BALANCE_INCREMENT // HYSTERESIS_QUOTIENT) + HYSTERESIS_INCREMENT = Uint64(EFFECTIVE_BALANCE_INCREMENT // HYSTERESIS_QUOTIENT) DOWNWARD_THRESHOLD = HYSTERESIS_INCREMENT * HYSTERESIS_DOWNWARD_MULTIPLIER UPWARD_THRESHOLD = HYSTERESIS_INCREMENT * HYSTERESIS_UPWARD_MULTIPLIER if ( @@ -9622,12 +9767,12 @@ - file: packages/state-transition/src/epoch/processEffectiveBalanceUpdates.ts search: export function processEffectiveBalanceUpdates( spec: | - + def process_effective_balance_updates(state: BeaconState) -> None: # Update effective balances with hysteresis for index, validator in enumerate(state.validators): balance = state.balances[index] - HYSTERESIS_INCREMENT = uint64(EFFECTIVE_BALANCE_INCREMENT // HYSTERESIS_QUOTIENT) + HYSTERESIS_INCREMENT = Uint64(EFFECTIVE_BALANCE_INCREMENT // HYSTERESIS_QUOTIENT) DOWNWARD_THRESHOLD = HYSTERESIS_INCREMENT * HYSTERESIS_DOWNWARD_MULTIPLIER UPWARD_THRESHOLD = HYSTERESIS_INCREMENT * HYSTERESIS_UPWARD_MULTIPLIER # [Modified in Electra:EIP7251] @@ -10152,10 +10297,10 @@ - file: packages/state-transition/src/block/processExecutionPayloadBid.ts search: export function processExecutionPayloadBid( spec: | - + def process_execution_payload_bid( state: BeaconState, signed_bid: SignedExecutionPayloadBid - ) -> None: + ) -> Slot: bid = signed_bid.message builder_index = bid.builder_index amount = bid.value @@ -10203,8 +10348,13 @@ pending_payment ) + # Cache the parent block's slot before overwriting the bid + parent_slot = state.latest_execution_payload_bid.slot + # Cache the signed execution payload bid state.latest_execution_payload_bid = bid + + return parent_slot - name: process_historical_roots_update#phase0 @@ -10269,12 +10419,13 @@ - name: process_inclusion_list#heze sources: [] spec: | - + def process_inclusion_list( store: InclusionListStore, - inclusion_list: InclusionList, + signed_inclusion_list: SignedInclusionList, is_timely: bool, ) -> None: + inclusion_list = signed_inclusion_list.message key = inclusion_list.inclusion_list_committee_root # Ignore `inclusion_list` from equivocators. @@ -10282,7 +10433,7 @@ return for stored_root in store.inclusion_lists[key]: - stored_inclusion_list = store.inclusion_lists[key][stored_root] + stored_inclusion_list = store.inclusion_lists[key][stored_root].message if stored_inclusion_list.validator_index != inclusion_list.validator_index: continue @@ -10292,9 +10443,9 @@ # Whether it was an equivocation or not, we have processed this `inclusion_list`. return - # Store `inclusion_list` and its timeliness. + # Store `signed_inclusion_list` and its timeliness. inclusion_list_root = hash_tree_root(inclusion_list) - store.inclusion_lists[key][inclusion_list_root] = inclusion_list + store.inclusion_lists[key][inclusion_list_root] = signed_inclusion_list store.inclusion_list_timeliness[inclusion_list_root] = is_timely @@ -10578,13 +10729,19 @@ - name: process_operations#gloas sources: [] spec: | - - def process_operations(state: BeaconState, body: BeaconBlockBody) -> None: + + def process_operations( + state: BeaconState, + body: BeaconBlockBody, + # [New in Gloas:EIP7732] + parent_slot: Slot, + ) -> None: assert len(body.deposits) == 0 - def for_ops(operations: Sequence[Any], fn: Callable[[BeaconState, Any], None]) -> None: + # [Modified in Gloas:EIP7732] + def for_ops(operations: Sequence[Any], fn: Callable[..., None], *args: Any) -> None: for operation in operations: - fn(state, operation) + fn(state, operation, *args) # [New in Gloas:EIP7688] assert len(body.proposer_slashings) <= MAX_PROPOSER_SLASHINGS @@ -10598,7 +10755,7 @@ for_ops(body.proposer_slashings, process_proposer_slashing) for_ops(body.attester_slashings, process_attester_slashing) # [Modified in Gloas:EIP7732] - for_ops(body.attestations, process_attestation) + for_ops(body.attestations, process_attestation, parent_slot) for_ops(body.voluntary_exits, process_voluntary_exit) for_ops(body.bls_to_execution_changes, process_bls_to_execution_change) # [Modified in Gloas:EIP7732] @@ -11189,7 +11346,7 @@ - file: packages/state-transition/src/epoch/processSlashings.ts search: export function processSlashings( spec: | - + def process_slashings(state: BeaconState) -> None: epoch = get_current_epoch(state) total_balance = get_total_active_balance(state) @@ -11201,7 +11358,7 @@ validator.slashed and epoch + EPOCHS_PER_SLASHINGS_VECTOR // 2 == validator.withdrawable_epoch ): - increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid uint64 overflow + increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid Uint64 overflow penalty_numerator = ( validator.effective_balance // increment * adjusted_total_slashing_balance ) @@ -11214,7 +11371,7 @@ - file: packages/state-transition/src/epoch/processSlashings.ts search: export function processSlashings( spec: | - + def process_slashings(state: BeaconState) -> None: epoch = get_current_epoch(state) total_balance = get_total_active_balance(state) @@ -11226,7 +11383,7 @@ validator.slashed and epoch + EPOCHS_PER_SLASHINGS_VECTOR // 2 == validator.withdrawable_epoch ): - increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid uint64 overflow + increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid Uint64 overflow penalty_numerator = ( validator.effective_balance // increment * adjusted_total_slashing_balance ) @@ -11239,7 +11396,7 @@ - file: packages/state-transition/src/epoch/processSlashings.ts search: export function processSlashings( spec: | - + def process_slashings(state: BeaconState) -> None: epoch = get_current_epoch(state) total_balance = get_total_active_balance(state) @@ -11254,7 +11411,7 @@ validator.slashed and epoch + EPOCHS_PER_SLASHINGS_VECTOR // 2 == validator.withdrawable_epoch ): - increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid uint64 overflow + increment = EFFECTIVE_BALANCE_INCREMENT # Factored out from penalty numerator to avoid Uint64 overflow penalty_numerator = ( validator.effective_balance // increment * adjusted_total_slashing_balance ) @@ -11267,7 +11424,7 @@ - file: packages/state-transition/src/epoch/processSlashings.ts search: export function processSlashings( spec: | - + def process_slashings(state: BeaconState) -> None: epoch = get_current_epoch(state) total_balance = get_total_active_balance(state) @@ -11275,7 +11432,7 @@ sum(state.slashings) * PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX, total_balance ) increment = ( - EFFECTIVE_BALANCE_INCREMENT # Factored out from total balance to avoid uint64 overflow + EFFECTIVE_BALANCE_INCREMENT # Factored out from total balance to avoid Uint64 overflow ) penalty_per_effective_balance_increment = adjusted_total_slashing_balance // ( total_balance // increment @@ -11787,7 +11944,7 @@ - name: record_payload_inclusion_list_satisfaction#heze sources: [] spec: | - + def record_payload_inclusion_list_satisfaction( store: Store, state: BeaconState, @@ -11796,7 +11953,7 @@ execution_engine: ExecutionEngine, ) -> None: inclusion_list_transactions = get_inclusion_list_transactions( - get_inclusion_list_store(), state, Slot(state.slot - 1) + get_inclusion_list_store(), state, Slot(state.slot - 1), only_timely=True ) is_inclusion_list_satisfied = execution_engine.is_inclusion_list_satisfied( payload, inclusion_list_transactions @@ -11809,21 +11966,21 @@ - file: packages/beacon-node/src/util/blobs.ts search: export async function dataColumnMatrixRecovery( spec: | - + def recover_matrix( - partial_matrix: Sequence[MatrixEntry], blob_count: uint64 + partial_matrix: Sequence[MatrixEntry], blob_count: Uint64 ) -> Sequence[MatrixEntry]: """ Recover the full, flattened sequence of matrix entries. - This helper demonstrates how to apply ``recover_cells_and_kzg_proofs``. + This helper demonstrates how to apply ``kzg.recover_cells_and_kzg_proofs``. The data structure for storing cells/proofs is implementation-dependent. """ matrix = [] for blob_index in range(blob_count): cell_indices = [e.column_index for e in partial_matrix if e.row_index == blob_index] cells = [e.cell for e in partial_matrix if e.row_index == blob_index] - recovered_cells, recovered_proofs = recover_cells_and_kzg_proofs(cell_indices, cells) + recovered_cells, recovered_proofs = kzg.recover_cells_and_kzg_proofs(cell_indices, cells) for cell_index, (cell, proof) in enumerate( zip(recovered_cells, recovered_proofs, strict=True) ): @@ -11841,8 +11998,8 @@ - name: seconds_to_milliseconds#phase0 sources: [] spec: | - - def seconds_to_milliseconds(seconds: uint64) -> uint64: + + def seconds_to_milliseconds(seconds: Uint64) -> Uint64: """ Convert seconds to milliseconds with overflow protection. Returns ``UINT64_MAX`` if the result would overflow. @@ -11868,8 +12025,8 @@ - file: packages/state-transition/src/block/processParentExecutionPayload.ts search: function settleBuilderPayment( spec: | - - def settle_builder_payment(state: BeaconState, payment_index: uint64) -> None: + + def settle_builder_payment(state: BeaconState, payment_index: Uint64) -> None: assert payment_index < len(state.builder_pending_payments) payment = state.builder_pending_payments[payment_index] if payment.withdrawal.amount > 0: @@ -11917,10 +12074,10 @@ - name: should_build_on_full#gloas sources: [] spec: | - - def should_build_on_full(store: Store, head: ForkChoiceNode) -> bool: + + def should_build_on_full(store: Store, head: ForkChoiceNode, slot: Slot) -> bool: assert head.payload_status != PAYLOAD_STATUS_PENDING - if store.blocks[head.root].slot + 1 != get_current_slot(store): + if store.blocks[head.root].slot + 1 != slot: return head.payload_status == PAYLOAD_STATUS_FULL if head.payload_status == PAYLOAD_STATUS_EMPTY: return False @@ -12195,9 +12352,9 @@ - name: update_builder_pending_withdrawals#gloas sources: [] spec: | - + def update_builder_pending_withdrawals( - state: BeaconState, processed_builder_withdrawals_count: uint64 + state: BeaconState, processed_builder_withdrawals_count: Uint64 ) -> None: state.builder_pending_withdrawals = state.builder_pending_withdrawals[ processed_builder_withdrawals_count: @@ -12297,9 +12454,9 @@ - name: update_next_withdrawal_builder_index#gloas sources: [] spec: | - + def update_next_withdrawal_builder_index( - state: BeaconState, processed_builders_sweep_count: uint64 + state: BeaconState, processed_builders_sweep_count: Uint64 ) -> None: if len(state.builders) > 0: # Update the next builder index to start the next withdrawal sweep @@ -12353,9 +12510,9 @@ - name: update_pending_partial_withdrawals#electra sources: [] spec: | - + def update_pending_partial_withdrawals( - state: BeaconState, processed_partial_withdrawals_count: uint64 + state: BeaconState, processed_partial_withdrawals_count: Uint64 ) -> None: state.pending_partial_withdrawals = state.pending_partial_withdrawals[ processed_partial_withdrawals_count: @@ -12606,7 +12763,7 @@ - file: packages/state-transition/src/lightClient/spec/utils.ts search: export function upgradeLightClientHeader( spec: | - + def upgrade_lc_header_to_deneb(pre: capella.LightClientHeader) -> LightClientHeader: return LightClientHeader( beacon=pre.beacon, @@ -12627,9 +12784,9 @@ transactions_root=pre.execution.transactions_root, withdrawals_root=pre.execution.withdrawals_root, # [New in Deneb:EIP4844] - blob_gas_used=uint64(0), + blob_gas_used=Uint64(0), # [New in Deneb:EIP4844] - excess_blob_gas=uint64(0), + excess_blob_gas=Uint64(0), ), execution_branch=pre.execution_branch, ) @@ -12934,7 +13091,7 @@ - file: packages/state-transition/src/slot/upgradeStateToAltair.ts search: export function upgradeStateToAltair( spec: | - + def upgrade_to_altair(pre: phase0.BeaconState) -> BeaconState: epoch = phase0.get_current_epoch(pre) post = BeaconState( @@ -12968,7 +13125,7 @@ previous_justified_checkpoint=pre.previous_justified_checkpoint, current_justified_checkpoint=pre.current_justified_checkpoint, finalized_checkpoint=pre.finalized_checkpoint, - inactivity_scores=[uint64(0) for _ in range(len(pre.validators))], + inactivity_scores=[Uint64(0) for _ in range(len(pre.validators))], ) # Fill in previous epoch participation from the pre state's pending attestations translate_participation(post, pre.previous_epoch_attestations) @@ -13098,7 +13255,7 @@ - file: packages/state-transition/src/slot/upgradeStateToDeneb.ts search: export function upgradeStateToDeneb( spec: | - + def upgrade_to_deneb(pre: capella.BeaconState) -> BeaconState: epoch = capella.get_current_epoch(pre) latest_execution_payload_header = ExecutionPayloadHeader( @@ -13118,9 +13275,9 @@ transactions_root=pre.latest_execution_payload_header.transactions_root, withdrawals_root=pre.latest_execution_payload_header.withdrawals_root, # [New in Deneb:EIP4844] - blob_gas_used=uint64(0), + blob_gas_used=Uint64(0), # [New in Deneb:EIP4844] - excess_blob_gas=uint64(0), + excess_blob_gas=Uint64(0), ) post = BeaconState( genesis_time=pre.genesis_time, @@ -13334,7 +13491,7 @@ - file: packages/state-transition/src/slot/upgradeStateToGloas.ts search: export function upgradeStateToGloas( spec: | - + def upgrade_to_gloas(pre: fulu.BeaconState) -> BeaconState: epoch = fulu.get_current_epoch(pre) @@ -13374,7 +13531,7 @@ current_justified_checkpoint=pre.current_justified_checkpoint, finalized_checkpoint=pre.finalized_checkpoint, # [Modified in Gloas:EIP7688] - inactivity_scores=ProgressiveList[uint64](list(pre.inactivity_scores)), + inactivity_scores=ProgressiveList[Uint64](list(pre.inactivity_scores)), current_sync_committee=pre.current_sync_committee, next_sync_committee=pre.next_sync_committee, # [Modified in Gloas:EIP7732] @@ -13432,7 +13589,7 @@ - name: upgrade_to_heze#heze sources: [] spec: | - + def upgrade_to_heze(pre: gloas.BeaconState) -> BeaconState: epoch = gloas.get_current_epoch(pre) latest_execution_payload_bid = ExecutionPayloadBid( @@ -13449,7 +13606,7 @@ blob_kzg_commitments=pre.latest_execution_payload_bid.blob_kzg_commitments, execution_requests_root=pre.latest_execution_payload_bid.execution_requests_root, # [New in Heze:EIP7805] - inclusion_list_bits=Bitvector[INCLUSION_LIST_COMMITTEE_SIZE](), + inclusion_list_bits=BitVector[INCLUSION_LIST_COMMITTEE_SIZE](), ) post = BeaconState( @@ -13513,13 +13670,13 @@ - name: validate_beacon_aggregate_and_proof_gossip#deneb sources: [] spec: | - + def validate_beacon_aggregate_and_proof_gossip( seen: Seen, store: Store, state: BeaconState, signed_aggregate_and_proof: SignedAggregateAndProof, - current_time_ms: uint64, + current_time_ms: Uint64, ) -> None: """ Validate a SignedAggregateAndProof for gossip propagation. @@ -13544,20 +13701,8 @@ # [Modified in Deneb:EIP7045] # [IGNORE] The aggregate attestation's epoch is either the current or previous epoch attestation_epoch = compute_epoch_at_slot(aggregate.data.slot) - is_previous_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(Epoch(attestation_epoch + 1)), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - is_current_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(attestation_epoch), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - if not (is_previous_epoch_attestation or is_current_epoch_attestation): - raise GossipIgnore("aggregate epoch is not previous or current epoch") + if not is_current_or_previous_epoch(state, attestation_epoch, current_time_ms): + raise GossipIgnore("aggregate epoch is not current or previous epoch") # [REJECT] The aggregate attestation's epoch matches its target if aggregate.data.target.epoch != compute_epoch_at_slot(aggregate.data.slot): @@ -13644,13 +13789,13 @@ - name: validate_beacon_aggregate_and_proof_gossip#electra sources: [] spec: | - + def validate_beacon_aggregate_and_proof_gossip( seen: Seen, store: Store, state: BeaconState, signed_aggregate_and_proof: SignedAggregateAndProof, - current_time_ms: uint64, + current_time_ms: Uint64, ) -> None: """ Validate a SignedAggregateAndProof for gossip propagation. @@ -13684,20 +13829,8 @@ # [IGNORE] The aggregate attestation's epoch is either the current or previous epoch attestation_epoch = compute_epoch_at_slot(aggregate.data.slot) - is_previous_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(Epoch(attestation_epoch + 1)), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - is_current_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(attestation_epoch), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - if not (is_previous_epoch_attestation or is_current_epoch_attestation): - raise GossipIgnore("aggregate epoch is not previous or current epoch") + if not is_current_or_previous_epoch(state, attestation_epoch, current_time_ms): + raise GossipIgnore("aggregate epoch is not current or previous epoch") # [REJECT] The aggregate attestation's epoch matches its target if aggregate.data.target.epoch != compute_epoch_at_slot(aggregate.data.slot): @@ -13786,13 +13919,13 @@ - name: validate_beacon_attestation_gossip#deneb sources: [] spec: | - + def validate_beacon_attestation_gossip( seen: Seen, store: Store, state: BeaconState, attestation: Attestation, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -13825,20 +13958,8 @@ # [Modified in Deneb:EIP7045] # [IGNORE] The attestation's epoch is either the current or previous epoch attestation_epoch = compute_epoch_at_slot(data.slot) - is_previous_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(Epoch(attestation_epoch + 1)), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - is_current_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(attestation_epoch), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - if not (is_previous_epoch_attestation or is_current_epoch_attestation): - raise GossipIgnore("attestation epoch is not previous or current epoch") + if not is_current_or_previous_epoch(state, attestation_epoch, current_time_ms): + raise GossipIgnore("attestation epoch is not current or previous epoch") # [REJECT] The attestation's epoch matches its target if target_epoch != compute_epoch_at_slot(data.slot): @@ -13893,14 +14014,14 @@ - name: validate_beacon_attestation_gossip#electra sources: [] spec: | - + def validate_beacon_attestation_gossip( seen: Seen, store: Store, state: BeaconState, # [Modified in Electra:EIP7549] attestation: SingleAttestation, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -13937,20 +14058,8 @@ # [IGNORE] The attestation's epoch is either the current or previous epoch attestation_epoch = compute_epoch_at_slot(data.slot) - is_previous_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(Epoch(attestation_epoch + 1)), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - is_current_epoch_attestation = is_within_slot_range( - state, - compute_start_slot_at_epoch(attestation_epoch), - SLOTS_PER_EPOCH - 1, - current_time_ms, - ) - if not (is_previous_epoch_attestation or is_current_epoch_attestation): - raise GossipIgnore("attestation epoch is not previous or current epoch") + if not is_current_or_previous_epoch(state, attestation_epoch, current_time_ms): + raise GossipIgnore("attestation epoch is not current or previous epoch") # [REJECT] The attestation's epoch matches its target if target_epoch != compute_epoch_at_slot(data.slot): @@ -14004,13 +14113,13 @@ - name: validate_beacon_block_gossip#bellatrix sources: [] spec: | - + def validate_beacon_block_gossip( seen: Seen, store: Store, state: BeaconState, signed_beacon_block: SignedBeaconBlock, - current_time_ms: uint64, + current_time_ms: Uint64, # [New in Bellatrix] block_payload_statuses: Dict[Root, PayloadValidationStatus], ) -> None: @@ -14065,15 +14174,15 @@ if block.parent_root not in store.block_states: if parent_payload_status == PAYLOAD_STATUS_NOT_VALIDATED: - # [REJECT] The block's parent passes validation - raise GossipReject("block's parent is invalid and EL result is unknown") + # [REJECT] The block's parent failed validation and its execution payload is optimistic + raise GossipReject("block's parent is invalid and its payload is optimistic") - # [IGNORE] The block's parent passes validation - raise GossipIgnore("block's parent is invalid and EL result is known") + # [IGNORE] The block's parent failed validation and its execution payload is processed + raise GossipIgnore("block's parent is invalid and its payload is processed") - # [IGNORE] The block's parent's execution payload passes validation + # [IGNORE] The block's parent passed validation but its execution payload is invalid if parent_payload_status == PAYLOAD_STATUS_INVALIDATED: - raise GossipIgnore("block's parent is valid and EL result is invalid") + raise GossipIgnore("block's parent is valid and its payload is invalid") # [REJECT] The block's parent passes validation elif block.parent_root not in store.block_states: @@ -14106,13 +14215,13 @@ - name: validate_beacon_block_gossip#capella sources: [] spec: | - + def validate_beacon_block_gossip( seen: Seen, store: Store, state: BeaconState, signed_beacon_block: SignedBeaconBlock, - current_time_ms: uint64, + current_time_ms: Uint64, block_payload_statuses: Dict[Root, PayloadValidationStatus], ) -> None: """ @@ -14164,15 +14273,15 @@ if block.parent_root not in store.block_states: if parent_payload_status == PAYLOAD_STATUS_NOT_VALIDATED: - # [REJECT] The block's parent passes validation - raise GossipReject("block's parent is invalid and EL result is unknown") + # [REJECT] The block's parent failed validation and its execution payload is optimistic + raise GossipReject("block's parent is invalid and its payload is optimistic") - # [IGNORE] The block's parent passes validation - raise GossipIgnore("block's parent is invalid and EL result is known") + # [IGNORE] The block's parent failed validation and its execution payload is processed + raise GossipIgnore("block's parent is invalid and its payload is processed") - # [IGNORE] The block's parent's execution payload passes validation + # [IGNORE] The block's parent passed validation but its execution payload is invalid if parent_payload_status == PAYLOAD_STATUS_INVALIDATED: - raise GossipIgnore("block's parent is valid and EL result is invalid") + raise GossipIgnore("block's parent is valid and its payload is invalid") # [REJECT] The block is from a higher slot than its parent if block.slot <= store.blocks[block.parent_root].slot: @@ -14200,13 +14309,13 @@ - name: validate_beacon_block_gossip#deneb sources: [] spec: | - + def validate_beacon_block_gossip( seen: Seen, store: Store, state: BeaconState, signed_beacon_block: SignedBeaconBlock, - current_time_ms: uint64, + current_time_ms: Uint64, block_payload_statuses: Dict[Root, PayloadValidationStatus], ) -> None: """ @@ -14258,15 +14367,15 @@ if block.parent_root not in store.block_states: if parent_payload_status == PAYLOAD_STATUS_NOT_VALIDATED: - # [REJECT] The block's parent passes validation - raise GossipReject("block's parent is invalid and EL result is unknown") + # [REJECT] The block's parent failed validation and its execution payload is optimistic + raise GossipReject("block's parent is invalid and its payload is optimistic") - # [IGNORE] The block's parent passes validation - raise GossipIgnore("block's parent is invalid and EL result is known") + # [IGNORE] The block's parent failed validation and its execution payload is processed + raise GossipIgnore("block's parent is invalid and its payload is processed") - # [IGNORE] The block's parent's execution payload passes validation + # [IGNORE] The block's parent passed validation but its execution payload is invalid if parent_payload_status == PAYLOAD_STATUS_INVALIDATED: - raise GossipIgnore("block's parent is valid and EL result is invalid") + raise GossipIgnore("block's parent is valid and its payload is invalid") # [REJECT] The block is from a higher slot than its parent if block.slot <= store.blocks[block.parent_root].slot: @@ -14299,13 +14408,13 @@ - name: validate_beacon_block_gossip#electra sources: [] spec: | - + def validate_beacon_block_gossip( seen: Seen, store: Store, state: BeaconState, signed_beacon_block: SignedBeaconBlock, - current_time_ms: uint64, + current_time_ms: Uint64, block_payload_statuses: Dict[Root, PayloadValidationStatus], ) -> None: """ @@ -14357,15 +14466,15 @@ if block.parent_root not in store.block_states: if parent_payload_status == PAYLOAD_STATUS_NOT_VALIDATED: - # [REJECT] The block's parent passes validation - raise GossipReject("block's parent is invalid and EL result is unknown") + # [REJECT] The block's parent failed validation and its execution payload is optimistic + raise GossipReject("block's parent is invalid and its payload is optimistic") - # [IGNORE] The block's parent passes validation - raise GossipIgnore("block's parent is invalid and EL result is known") + # [IGNORE] The block's parent failed validation and its execution payload is processed + raise GossipIgnore("block's parent is invalid and its payload is processed") - # [IGNORE] The block's parent's execution payload passes validation + # [IGNORE] The block's parent passed validation but its execution payload is invalid if parent_payload_status == PAYLOAD_STATUS_INVALIDATED: - raise GossipIgnore("block's parent is valid and EL result is invalid") + raise GossipIgnore("block's parent is valid and its payload is invalid") # [REJECT] The block is from a higher slot than its parent if block.slot <= store.blocks[block.parent_root].slot: @@ -14398,13 +14507,13 @@ - name: validate_beacon_block_gossip#fulu sources: [] spec: | - + def validate_beacon_block_gossip( seen: Seen, store: Store, state: BeaconState, signed_beacon_block: SignedBeaconBlock, - current_time_ms: uint64, + current_time_ms: Uint64, block_payload_statuses: Optional[Dict[Root, PayloadValidationStatus]] = None, ) -> None: """ @@ -14458,15 +14567,15 @@ if block.parent_root not in store.block_states: if parent_payload_status == PAYLOAD_STATUS_NOT_VALIDATED: - # [REJECT] The block's parent passes validation - raise GossipReject("block's parent is invalid and EL result is unknown") + # [REJECT] The block's parent failed validation and its execution payload is optimistic + raise GossipReject("block's parent is invalid and its payload is optimistic") - # [IGNORE] The block's parent passes validation - raise GossipIgnore("block's parent is invalid and EL result is known") + # [IGNORE] The block's parent failed validation and its execution payload is processed + raise GossipIgnore("block's parent is invalid and its payload is processed") - # [IGNORE] The block's parent's execution payload passes validation + # [IGNORE] The block's parent passed validation but its execution payload is invalid if parent_payload_status == PAYLOAD_STATUS_INVALIDATED: - raise GossipIgnore("block's parent is valid and EL result is invalid") + raise GossipIgnore("block's parent is valid and its payload is invalid") # [REJECT] The block is from a higher slot than its parent if block.slot <= store.blocks[block.parent_root].slot: @@ -14500,13 +14609,13 @@ - name: validate_blob_sidecar_gossip#deneb sources: [] spec: | - + def validate_blob_sidecar_gossip( seen: Seen, store: Store, state: BeaconState, blob_sidecar: BlobSidecar, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -14569,7 +14678,7 @@ raise GossipReject("invalid blob sidecar inclusion proof") # [REJECT] The sidecar's blob is valid as verified by verify_blob_kzg_proof - if not verify_blob_kzg_proof( + if not kzg.verify_blob_kzg_proof( blob_sidecar.blob, blob_sidecar.kzg_commitment, blob_sidecar.kzg_proof ): raise GossipReject("invalid blob kzg proof") @@ -14595,13 +14704,13 @@ - name: validate_blob_sidecar_gossip#electra sources: [] spec: | - + def validate_blob_sidecar_gossip( seen: Seen, store: Store, state: BeaconState, blob_sidecar: BlobSidecar, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -14665,7 +14774,7 @@ raise GossipReject("invalid blob sidecar inclusion proof") # [REJECT] The sidecar's blob is valid as verified by verify_blob_kzg_proof - if not verify_blob_kzg_proof( + if not kzg.verify_blob_kzg_proof( blob_sidecar.blob, blob_sidecar.kzg_commitment, blob_sidecar.kzg_proof ): raise GossipReject("invalid blob kzg proof") @@ -14691,12 +14800,12 @@ - name: validate_bls_to_execution_change_gossip#capella sources: [] spec: | - + def validate_bls_to_execution_change_gossip( seen: Seen, state: BeaconState, signed_bls_to_execution_change: SignedBLSToExecutionChange, - current_time_ms: uint64, + current_time_ms: Uint64, ) -> None: """ Validate a SignedBLSToExecutionChange for gossip propagation. @@ -14750,13 +14859,13 @@ - name: validate_data_column_sidecar_gossip#fulu sources: [] spec: | - + def validate_data_column_sidecar_gossip( seen: Seen, store: Store, state: BeaconState, sidecar: DataColumnSidecar, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -15071,13 +15180,13 @@ - name: validate_partial_data_column_sidecar_gossip#fulu sources: [] spec: | - + def validate_partial_data_column_sidecar_gossip( seen: Seen, store: Store, state: BeaconState, sidecar: PartialDataColumnSidecar, - current_time_ms: uint64, + current_time_ms: Uint64, group_id: PartialDataColumnGroupID, column_index: ColumnIndex, ) -> None: @@ -15208,12 +15317,12 @@ - name: validate_sync_committee_contribution_and_proof_gossip#altair sources: [] spec: | - + def validate_sync_committee_contribution_and_proof_gossip( seen: Seen, state: BeaconState, signed_contribution_and_proof: SignedContributionAndProof, - current_time_ms: uint64, + current_time_ms: Uint64, ) -> None: """ Validate a SignedContributionAndProof for gossip propagation. @@ -15316,12 +15425,12 @@ - name: validate_sync_committee_message_gossip#altair sources: [] spec: | - + def validate_sync_committee_message_gossip( seen: Seen, state: BeaconState, sync_committee_message: SyncCommitteeMessage, - current_time_ms: uint64, + current_time_ms: Uint64, subnet_id: SubnetID, ) -> None: """ @@ -15560,7 +15669,7 @@ - file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts search: export async function verifyDataColumnSidecarKzgProofs( spec: | - + def verify_data_column_sidecar_kzg_proofs(sidecar: DataColumnSidecar) -> bool: """ Verify if the KZG proofs are correct. @@ -15569,7 +15678,7 @@ cell_indices = [CellIndex(sidecar.index)] * len(sidecar.column) # Batch verify that the cells match the corresponding commitments and proofs - return verify_cell_kzg_proof_batch( + return kzg.verify_cell_kzg_proof_batch( commitments_bytes=sidecar.kzg_commitments, cell_indices=cell_indices, cells=sidecar.column, @@ -15582,7 +15691,7 @@ - file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts search: export async function verifyDataColumnSidecarKzgProofs( spec: | - + def verify_data_column_sidecar_kzg_proofs( sidecar: DataColumnSidecar, # [New in Gloas:EIP7732] @@ -15595,7 +15704,7 @@ cell_indices = [CellIndex(sidecar.index)] * len(sidecar.column) # Batch verify that the cells match the corresponding commitments and proofs - return verify_cell_kzg_proof_batch( + return kzg.verify_cell_kzg_proof_batch( # [Modified in Gloas:EIP7732] commitments_bytes=kzg_commitments, cell_indices=cell_indices, @@ -15694,8 +15803,8 @@ - name: voting_period_start_time#phase0 sources: [] spec: | - - def voting_period_start_time(state: BeaconState) -> uint64: + + def voting_period_start_time(state: BeaconState) -> Uint64: eth1_voting_period_start_slot = Slot( state.slot - state.slot % (EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH) ) diff --git a/specrefs/presets.yml b/specrefs/presets.yml index 4233892e8d6b..e85375556751 100644 --- a/specrefs/presets.yml +++ b/specrefs/presets.yml @@ -3,8 +3,8 @@ - file: packages/params/src/presets/mainnet.ts search: "BASE_REWARD_FACTOR:" spec: | - - BASE_REWARD_FACTOR: uint64 = 64 + + BASE_REWARD_FACTOR: Uint64 = 64 - name: BYTES_PER_LOGS_BLOOM#bellatrix @@ -12,8 +12,8 @@ - file: packages/params/src/presets/mainnet.ts search: "BYTES_PER_LOGS_BLOOM:" spec: | - - BYTES_PER_LOGS_BLOOM: uint64 = 256 + + BYTES_PER_LOGS_BLOOM: Uint64 = 256 - name: CELLS_PER_EXT_BLOB#fulu @@ -39,8 +39,8 @@ - file: packages/params/src/presets/mainnet.ts search: "EPOCHS_PER_ETH1_VOTING_PERIOD:" spec: | - - EPOCHS_PER_ETH1_VOTING_PERIOD: uint64 = 64 + + EPOCHS_PER_ETH1_VOTING_PERIOD: Epoch = 64 - name: EPOCHS_PER_HISTORICAL_VECTOR#phase0 @@ -48,8 +48,8 @@ - file: packages/params/src/presets/mainnet.ts search: "EPOCHS_PER_HISTORICAL_VECTOR:" spec: | - - EPOCHS_PER_HISTORICAL_VECTOR: uint64 = 65536 + + EPOCHS_PER_HISTORICAL_VECTOR: Epoch = 65536 - name: EPOCHS_PER_SLASHINGS_VECTOR#phase0 @@ -57,8 +57,8 @@ - file: packages/params/src/presets/mainnet.ts search: "EPOCHS_PER_SLASHINGS_VECTOR:" spec: | - - EPOCHS_PER_SLASHINGS_VECTOR: uint64 = 8192 + + EPOCHS_PER_SLASHINGS_VECTOR: Epoch = 8192 - name: EPOCHS_PER_SYNC_COMMITTEE_PERIOD#altair @@ -66,8 +66,8 @@ - file: packages/params/src/presets/mainnet.ts search: "EPOCHS_PER_SYNC_COMMITTEE_PERIOD:" spec: | - - EPOCHS_PER_SYNC_COMMITTEE_PERIOD: uint64 = 256 + + EPOCHS_PER_SYNC_COMMITTEE_PERIOD: Epoch = 256 - name: FIELD_ELEMENTS_PER_BLOB#deneb @@ -75,8 +75,8 @@ - file: packages/params/src/presets/mainnet.ts search: "FIELD_ELEMENTS_PER_BLOB:" spec: | - - FIELD_ELEMENTS_PER_BLOB: uint64 = 4096 + + FIELD_ELEMENTS_PER_BLOB: Uint64 = 4096 - name: FIELD_ELEMENTS_PER_CELL#fulu @@ -84,8 +84,8 @@ - file: packages/params/src/presets/mainnet.ts search: "FIELD_ELEMENTS_PER_CELL:" spec: | - - FIELD_ELEMENTS_PER_CELL: uint64 = 64 + + FIELD_ELEMENTS_PER_CELL: Uint64 = 64 - name: FIELD_ELEMENTS_PER_EXT_BLOB#fulu @@ -102,8 +102,8 @@ - file: packages/params/src/presets/mainnet.ts search: "HISTORICAL_ROOTS_LIMIT:" spec: | - - HISTORICAL_ROOTS_LIMIT: uint64 = 16777216 + + HISTORICAL_ROOTS_LIMIT: Uint64 = 16777216 - name: HYSTERESIS_DOWNWARD_MULTIPLIER#phase0 @@ -111,8 +111,8 @@ - file: packages/params/src/presets/mainnet.ts search: "HYSTERESIS_DOWNWARD_MULTIPLIER:" spec: | - - HYSTERESIS_DOWNWARD_MULTIPLIER: uint64 = 1 + + HYSTERESIS_DOWNWARD_MULTIPLIER: Uint64 = 1 - name: HYSTERESIS_QUOTIENT#phase0 @@ -120,8 +120,8 @@ - file: packages/params/src/presets/mainnet.ts search: "HYSTERESIS_QUOTIENT:" spec: | - - HYSTERESIS_QUOTIENT: uint64 = 4 + + HYSTERESIS_QUOTIENT: Uint64 = 4 - name: HYSTERESIS_UPWARD_MULTIPLIER#phase0 @@ -129,8 +129,8 @@ - file: packages/params/src/presets/mainnet.ts search: "HYSTERESIS_UPWARD_MULTIPLIER:" spec: | - - HYSTERESIS_UPWARD_MULTIPLIER: uint64 = 5 + + HYSTERESIS_UPWARD_MULTIPLIER: Uint64 = 5 - name: INACTIVITY_PENALTY_QUOTIENT#phase0 @@ -138,8 +138,8 @@ - file: packages/params/src/presets/mainnet.ts search: "INACTIVITY_PENALTY_QUOTIENT:" spec: | - - INACTIVITY_PENALTY_QUOTIENT: uint64 = 67108864 + + INACTIVITY_PENALTY_QUOTIENT: Uint64 = 67108864 - name: INACTIVITY_PENALTY_QUOTIENT_ALTAIR#altair @@ -147,8 +147,8 @@ - file: packages/params/src/presets/mainnet.ts search: "INACTIVITY_PENALTY_QUOTIENT_ALTAIR:" spec: | - - INACTIVITY_PENALTY_QUOTIENT_ALTAIR: uint64 = 50331648 + + INACTIVITY_PENALTY_QUOTIENT_ALTAIR: Uint64 = 50331648 - name: INACTIVITY_PENALTY_QUOTIENT_BELLATRIX#bellatrix @@ -156,15 +156,15 @@ - file: packages/params/src/presets/mainnet.ts search: "INACTIVITY_PENALTY_QUOTIENT_BELLATRIX:" spec: | - - INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: uint64 = 16777216 + + INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: Uint64 = 16777216 - name: INCLUSION_LIST_COMMITTEE_SIZE#heze sources: [] spec: | - - INCLUSION_LIST_COMMITTEE_SIZE: uint64 = 16 + + INCLUSION_LIST_COMMITTEE_SIZE: Uint64 = 16 - name: KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH#fulu @@ -172,8 +172,8 @@ - file: packages/params/src/presets/mainnet.ts search: "KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH:" spec: | - - KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: uint64 = 4 + + KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: Uint64 = 4 - name: KZG_COMMITMENT_INCLUSION_PROOF_DEPTH#deneb @@ -181,8 +181,8 @@ - file: packages/params/src/presets/mainnet.ts search: "KZG_COMMITMENT_INCLUSION_PROOF_DEPTH:" spec: | - - KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: uint64 = 17 + + KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: Uint64 = 17 - name: MAX_ATTESTATIONS#phase0 @@ -190,8 +190,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_ATTESTATIONS:" spec: | - - MAX_ATTESTATIONS: uint64 = 128 + + MAX_ATTESTATIONS: Uint64 = 128 - name: MAX_ATTESTATIONS_ELECTRA#electra @@ -199,8 +199,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_ATTESTATIONS_ELECTRA:" spec: | - - MAX_ATTESTATIONS_ELECTRA: uint64 = 8 + + MAX_ATTESTATIONS_ELECTRA: Uint64 = 8 - name: MAX_ATTESTER_SLASHINGS#phase0 @@ -208,8 +208,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_ATTESTER_SLASHINGS:" spec: | - - MAX_ATTESTER_SLASHINGS: uint64 = 2 + + MAX_ATTESTER_SLASHINGS: Uint64 = 2 - name: MAX_ATTESTER_SLASHINGS_ELECTRA#electra @@ -217,8 +217,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_ATTESTER_SLASHINGS_ELECTRA:" spec: | - - MAX_ATTESTER_SLASHINGS_ELECTRA: uint64 = 1 + + MAX_ATTESTER_SLASHINGS_ELECTRA: Uint64 = 1 - name: MAX_ATTESTER_SLASHING_SIZE#gloas @@ -226,8 +226,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_ATTESTER_SLASHING_SIZE:" spec: | - - MAX_ATTESTER_SLASHING_SIZE: uint64 = 2097616 + + MAX_ATTESTER_SLASHING_SIZE: Uint64 = 2097616 - name: MAX_BLOB_COMMITMENTS_PER_BLOCK#deneb @@ -235,8 +235,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BLOB_COMMITMENTS_PER_BLOCK:" spec: | - - MAX_BLOB_COMMITMENTS_PER_BLOCK: uint64 = 4096 + + MAX_BLOB_COMMITMENTS_PER_BLOCK: Uint64 = 4096 - name: MAX_BLS_TO_EXECUTION_CHANGES#capella @@ -244,8 +244,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BLS_TO_EXECUTION_CHANGES:" spec: | - - MAX_BLS_TO_EXECUTION_CHANGES: uint64 = 16 + + MAX_BLS_TO_EXECUTION_CHANGES: Uint64 = 16 - name: MAX_BUILDERS_PER_WITHDRAWALS_SWEEP#gloas @@ -253,8 +253,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BUILDERS_PER_WITHDRAWALS_SWEEP:" spec: | - - MAX_BUILDERS_PER_WITHDRAWALS_SWEEP: uint64 = 16384 + + MAX_BUILDERS_PER_WITHDRAWALS_SWEEP: Uint64 = 16384 - name: MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD#gloas @@ -262,8 +262,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD:" spec: | - - MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD: uint64 = 64 + + MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD: Uint64 = 64 - name: MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD#gloas @@ -271,8 +271,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD:" spec: | - - MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD: uint64 = 16 + + MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD: Uint64 = 16 - name: MAX_BYTES_PER_TRANSACTION#bellatrix @@ -280,8 +280,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_BYTES_PER_TRANSACTION:" spec: | - - MAX_BYTES_PER_TRANSACTION: uint64 = 1073741824 + + MAX_BYTES_PER_TRANSACTION: Uint64 = 1073741824 - name: MAX_COMMITTEES_PER_SLOT#phase0 @@ -289,8 +289,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_COMMITTEES_PER_SLOT:" spec: | - - MAX_COMMITTEES_PER_SLOT: uint64 = 64 + + MAX_COMMITTEES_PER_SLOT: Uint64 = 64 - name: MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD#electra @@ -298,8 +298,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD:" spec: | - - MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: uint64 = 2 + + MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: Uint64 = 2 - name: MAX_DATA_COLUMN_SIDECAR_SIZE#gloas @@ -307,8 +307,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_DATA_COLUMN_SIDECAR_SIZE:" spec: | - - MAX_DATA_COLUMN_SIDECAR_SIZE: uint64 = 8585272 + + MAX_DATA_COLUMN_SIDECAR_SIZE: Uint64 = 8585272 - name: MAX_DEPOSITS#phase0 @@ -316,8 +316,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_DEPOSITS:" spec: | - - MAX_DEPOSITS: uint64 = 16 + + MAX_DEPOSITS: Uint64 = 16 - name: MAX_DEPOSIT_REQUESTS_PER_PAYLOAD#electra @@ -325,8 +325,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_DEPOSIT_REQUESTS_PER_PAYLOAD:" spec: | - - MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: uint64 = 8192 + + MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: Uint64 = 8192 - name: MAX_EFFECTIVE_BALANCE#phase0 @@ -352,8 +352,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_EXTRA_DATA_BYTES:" spec: | - - MAX_EXTRA_DATA_BYTES: uint64 = 32 + + MAX_EXTRA_DATA_BYTES: Uint64 = 32 - name: MAX_PARTIAL_DATA_COLUMN_SIDECAR_SIZE#gloas @@ -361,8 +361,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_PARTIAL_DATA_COLUMN_SIDECAR_SIZE:" spec: | - - MAX_PARTIAL_DATA_COLUMN_SIDECAR_SIZE: uint64 = 8585741 + + MAX_PARTIAL_DATA_COLUMN_SIDECAR_SIZE: Uint64 = 8585741 - name: MAX_PAYLOAD_ATTESTATIONS#gloas @@ -370,8 +370,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_PAYLOAD_ATTESTATIONS:" spec: | - - MAX_PAYLOAD_ATTESTATIONS: uint64 = 4 + + MAX_PAYLOAD_ATTESTATIONS: Uint64 = 4 - name: MAX_PENDING_DEPOSITS_PER_EPOCH#electra @@ -379,8 +379,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_PENDING_DEPOSITS_PER_EPOCH:" spec: | - - MAX_PENDING_DEPOSITS_PER_EPOCH: uint64 = 16 + + MAX_PENDING_DEPOSITS_PER_EPOCH: Uint64 = 16 - name: MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP#electra @@ -388,8 +388,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP:" spec: | - - MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: uint64 = 8 + + MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: Uint64 = 8 - name: MAX_PROPOSER_SLASHINGS#phase0 @@ -397,8 +397,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_PROPOSER_SLASHINGS:" spec: | - - MAX_PROPOSER_SLASHINGS: uint64 = 16 + + MAX_PROPOSER_SLASHINGS: Uint64 = 16 - name: MAX_SEED_LOOKAHEAD#phase0 @@ -406,8 +406,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_SEED_LOOKAHEAD:" spec: | - - MAX_SEED_LOOKAHEAD: uint64 = 4 + + MAX_SEED_LOOKAHEAD: Epoch = 4 - name: MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE#gloas @@ -415,8 +415,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE:" spec: | - - MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE: uint64 = 16829 + + MAX_SIGNED_AGGREGATE_AND_PROOF_SIZE: Uint64 = 16829 - name: MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE#gloas @@ -424,22 +424,22 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE:" spec: | - - MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE: uint64 = 196932 + + MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE: Uint64 = 196932 - name: MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE_HEZE#heze sources: [] spec: | - - MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE_HEZE: uint64 = 196934 + + MAX_SIGNED_EXECUTION_PAYLOAD_BID_SIZE_HEZE: Uint64 = 196934 - name: MAX_SIGNED_INCLUSION_LIST_SIZE#heze sources: [] spec: | - - MAX_SIGNED_INCLUSION_LIST_SIZE: uint64 = 8348 + + MAX_SIGNED_INCLUSION_LIST_SIZE: Uint64 = 8348 - name: MAX_TRANSACTIONS_PER_PAYLOAD#bellatrix @@ -447,8 +447,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_TRANSACTIONS_PER_PAYLOAD:" spec: | - - MAX_TRANSACTIONS_PER_PAYLOAD: uint64 = 1048576 + + MAX_TRANSACTIONS_PER_PAYLOAD: Uint64 = 1048576 - name: MAX_VALIDATORS_PER_COMMITTEE#phase0 @@ -456,8 +456,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_VALIDATORS_PER_COMMITTEE:" spec: | - - MAX_VALIDATORS_PER_COMMITTEE: uint64 = 2048 + + MAX_VALIDATORS_PER_COMMITTEE: Uint64 = 2048 - name: MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP#capella @@ -465,8 +465,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP:" spec: | - - MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: uint64 = 16384 + + MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: Uint64 = 16384 - name: MAX_VOLUNTARY_EXITS#phase0 @@ -474,8 +474,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_VOLUNTARY_EXITS:" spec: | - - MAX_VOLUNTARY_EXITS: uint64 = 16 + + MAX_VOLUNTARY_EXITS: Uint64 = 16 - name: MAX_WITHDRAWALS_PER_PAYLOAD#capella @@ -483,8 +483,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_WITHDRAWALS_PER_PAYLOAD:" spec: | - - MAX_WITHDRAWALS_PER_PAYLOAD: uint64 = 16 + + MAX_WITHDRAWALS_PER_PAYLOAD: Uint64 = 16 - name: MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD#electra @@ -492,8 +492,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD:" spec: | - - MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: uint64 = 16 + + MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: Uint64 = 16 - name: MIN_ACTIVATION_BALANCE#electra @@ -510,8 +510,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_ATTESTATION_INCLUSION_DELAY:" spec: | - - MIN_ATTESTATION_INCLUSION_DELAY: uint64 = 1 + + MIN_ATTESTATION_INCLUSION_DELAY: Slot = 1 - name: MIN_DEPOSIT_AMOUNT#phase0 @@ -528,8 +528,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_EPOCHS_TO_INACTIVITY_PENALTY:" spec: | - - MIN_EPOCHS_TO_INACTIVITY_PENALTY: uint64 = 4 + + MIN_EPOCHS_TO_INACTIVITY_PENALTY: Epoch = 4 - name: MIN_SEED_LOOKAHEAD#phase0 @@ -537,8 +537,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SEED_LOOKAHEAD:" spec: | - - MIN_SEED_LOOKAHEAD: uint64 = 1 + + MIN_SEED_LOOKAHEAD: Epoch = 1 - name: MIN_SLASHING_PENALTY_QUOTIENT#phase0 @@ -546,8 +546,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SLASHING_PENALTY_QUOTIENT:" spec: | - - MIN_SLASHING_PENALTY_QUOTIENT: uint64 = 128 + + MIN_SLASHING_PENALTY_QUOTIENT: Uint64 = 128 - name: MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR#altair @@ -555,8 +555,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR:" spec: | - - MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: uint64 = 64 + + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: Uint64 = 64 - name: MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX#bellatrix @@ -564,8 +564,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX:" spec: | - - MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: uint64 = 32 + + MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: Uint64 = 32 - name: MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA#electra @@ -573,8 +573,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA:" spec: | - - MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: uint64 = 4096 + + MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: Uint64 = 4096 - name: MIN_SYNC_COMMITTEE_PARTICIPANTS#altair @@ -582,8 +582,8 @@ - file: packages/params/src/presets/mainnet.ts search: "MIN_SYNC_COMMITTEE_PARTICIPANTS:" spec: | - - MIN_SYNC_COMMITTEE_PARTICIPANTS = 1 + + MIN_SYNC_COMMITTEE_PARTICIPANTS: Uint64 = 1 - name: NUMBER_OF_COLUMNS#fulu @@ -591,8 +591,8 @@ - file: packages/params/src/presets/mainnet.ts search: "NUMBER_OF_COLUMNS:" spec: | - - NUMBER_OF_COLUMNS = 128 + + NUMBER_OF_COLUMNS: Uint64 = 128 - name: PENDING_CONSOLIDATIONS_LIMIT#electra @@ -600,8 +600,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PENDING_CONSOLIDATIONS_LIMIT:" spec: | - - PENDING_CONSOLIDATIONS_LIMIT: uint64 = 262144 + + PENDING_CONSOLIDATIONS_LIMIT: Uint64 = 262144 - name: PENDING_DEPOSITS_LIMIT#electra @@ -609,8 +609,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PENDING_DEPOSITS_LIMIT:" spec: | - - PENDING_DEPOSITS_LIMIT: uint64 = 134217728 + + PENDING_DEPOSITS_LIMIT: Uint64 = 134217728 - name: PENDING_PARTIAL_WITHDRAWALS_LIMIT#electra @@ -618,8 +618,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PENDING_PARTIAL_WITHDRAWALS_LIMIT:" spec: | - - PENDING_PARTIAL_WITHDRAWALS_LIMIT: uint64 = 134217728 + + PENDING_PARTIAL_WITHDRAWALS_LIMIT: Uint64 = 134217728 - name: PROPORTIONAL_SLASHING_MULTIPLIER#phase0 @@ -627,8 +627,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PROPORTIONAL_SLASHING_MULTIPLIER:" spec: | - - PROPORTIONAL_SLASHING_MULTIPLIER: uint64 = 1 + + PROPORTIONAL_SLASHING_MULTIPLIER: Uint64 = 1 - name: PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR#altair @@ -636,8 +636,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR:" spec: | - - PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: uint64 = 2 + + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: Uint64 = 2 - name: PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX#bellatrix @@ -645,8 +645,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX:" spec: | - - PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: uint64 = 3 + + PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: Uint64 = 3 - name: PROPOSER_REWARD_QUOTIENT#phase0 @@ -654,8 +654,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PROPOSER_REWARD_QUOTIENT:" spec: | - - PROPOSER_REWARD_QUOTIENT: uint64 = 8 + + PROPOSER_REWARD_QUOTIENT: Uint64 = 8 - name: PTC_SIZE#gloas @@ -663,8 +663,8 @@ - file: packages/params/src/presets/mainnet.ts search: "PTC_SIZE:" spec: | - - PTC_SIZE: uint64 = 512 + + PTC_SIZE: Uint64 = 512 - name: SHUFFLE_ROUND_COUNT#phase0 @@ -672,8 +672,8 @@ - file: packages/params/src/presets/mainnet.ts search: "SHUFFLE_ROUND_COUNT:" spec: | - - SHUFFLE_ROUND_COUNT: uint64 = 90 + + SHUFFLE_ROUND_COUNT: Uint64 = 90 - name: SLOTS_PER_EPOCH#phase0 @@ -681,8 +681,8 @@ - file: packages/params/src/presets/mainnet.ts search: "SLOTS_PER_EPOCH:" spec: | - - SLOTS_PER_EPOCH: uint64 = 32 + + SLOTS_PER_EPOCH: Slot = 32 - name: SLOTS_PER_HISTORICAL_ROOT#phase0 @@ -690,8 +690,8 @@ - file: packages/params/src/presets/mainnet.ts search: "SLOTS_PER_HISTORICAL_ROOT:" spec: | - - SLOTS_PER_HISTORICAL_ROOT: uint64 = 8192 + + SLOTS_PER_HISTORICAL_ROOT: Slot = 8192 - name: SYNC_COMMITTEE_SIZE#altair @@ -699,8 +699,8 @@ - file: packages/params/src/presets/mainnet.ts search: "SYNC_COMMITTEE_SIZE:" spec: | - - SYNC_COMMITTEE_SIZE: uint64 = 512 + + SYNC_COMMITTEE_SIZE: Uint64 = 512 - name: TARGET_COMMITTEE_SIZE#phase0 @@ -708,8 +708,8 @@ - file: packages/params/src/presets/mainnet.ts search: "TARGET_COMMITTEE_SIZE:" spec: | - - TARGET_COMMITTEE_SIZE: uint64 = 128 + + TARGET_COMMITTEE_SIZE: Uint64 = 128 - name: UPDATE_TIMEOUT#altair @@ -717,8 +717,8 @@ - file: packages/params/src/presets/mainnet.ts search: "UPDATE_TIMEOUT:" spec: | - - UPDATE_TIMEOUT = 8192 + + UPDATE_TIMEOUT: Slot = 8192 - name: VALIDATOR_REGISTRY_LIMIT#phase0 @@ -726,8 +726,8 @@ - file: packages/params/src/presets/mainnet.ts search: "VALIDATOR_REGISTRY_LIMIT:" spec: | - - VALIDATOR_REGISTRY_LIMIT: uint64 = 1099511627776 + + VALIDATOR_REGISTRY_LIMIT: Uint64 = 1099511627776 - name: WHISTLEBLOWER_REWARD_QUOTIENT#phase0 @@ -735,8 +735,8 @@ - file: packages/params/src/presets/mainnet.ts search: "WHISTLEBLOWER_REWARD_QUOTIENT:" spec: | - - WHISTLEBLOWER_REWARD_QUOTIENT: uint64 = 512 + + WHISTLEBLOWER_REWARD_QUOTIENT: Uint64 = 512 - name: WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA#electra @@ -744,6 +744,6 @@ - file: packages/params/src/presets/mainnet.ts search: "WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA:" spec: | - - WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: uint64 = 4096 + + WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: Uint64 = 4096 diff --git a/specrefs/types.yml b/specrefs/types.yml index f0028ee3aa41..d8e9e942a889 100644 --- a/specrefs/types.yml +++ b/specrefs/types.yml @@ -3,8 +3,8 @@ - file: packages/types/src/electra/sszTypes.ts search: export const AggregationBits = spec: | - - AggregationBits = Bitlist[MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT] + + AggregationBits = BitList[MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT] - name: AggregationBits#gloas @@ -12,8 +12,8 @@ - file: packages/types/src/gloas/sszTypes.ts search: export const AggregationBits = spec: | - - AggregationBits = ProgressiveBitlist + + AggregationBits = ProgressiveBitList - name: AttestingIndices#electra @@ -66,8 +66,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const BlobIndex = spec: | - - BlobIndex = uint64 + + BlobIndex = Uint64 - name: BlockAccessList#gloas @@ -102,8 +102,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const BuilderIndex = spec: | - - BuilderIndex = uint64 + + BuilderIndex = Uint64 - name: Cell#fulu @@ -118,8 +118,8 @@ - name: CellIndex#fulu sources: [] spec: | - - CellIndex = uint64 + + CellIndex = Uint64 - name: ColumnIndex#fulu @@ -127,15 +127,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const ColumnIndex = spec: | - - ColumnIndex = uint64 - - -- name: CommitmentIndex#fulu - sources: [] - spec: | - - CommitmentIndex = uint64 + + ColumnIndex = Uint64 - name: CommitteeIndex#phase0 @@ -143,8 +136,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const CommitteeIndex = spec: | - - CommitteeIndex = uint64 + + CommitteeIndex = Uint64 - name: ConsolidationRequests#electra @@ -197,8 +190,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const CustodyIndex = spec: | - - CustodyIndex = uint64 + + CustodyIndex = Uint64 - name: DepositRequests#electra @@ -242,23 +235,23 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const Epoch = spec: | - - Epoch = uint64 + + Epoch = Uint64 - name: Ether#phase0 sources: [] spec: | - - Ether = uint64 + + Ether = Uint64 -- name: ExecutionAddress#bellatrix +- name: ExecutionAddress#phase0 sources: - file: packages/types/src/primitive/sszTypes.ts search: export const ExecutionAddress = spec: | - + ExecutionAddress = Bytes20 @@ -314,31 +307,13 @@ ForkDigest = Bytes4 -- name: G1Point#deneb - sources: - - file: packages/types/src/deneb/sszTypes.ts - search: export const G1Point = - spec: | - - G1Point = Bytes48 - - -- name: G2Point#deneb - sources: - - file: packages/types/src/deneb/sszTypes.ts - search: export const G2Point = - spec: | - - G2Point = Bytes96 - - - name: Gwei#phase0 sources: - file: packages/types/src/primitive/sszTypes.ts search: export const Gwei = spec: | - - Gwei = uint64 + + Gwei = Uint64 - name: Hash32#phase0 @@ -396,8 +371,8 @@ - name: NodeID#phase0 sources: [] spec: | - - NodeID = uint256 + + NodeID = Uint256 - name: ParticipationFlags#altair @@ -405,8 +380,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const ParticipationFlags = spec: | - - ParticipationFlags = uint8 + + ParticipationFlags = Uint8 - name: PayloadId#bellatrix @@ -419,15 +394,15 @@ - name: PayloadStatus#gloas sources: [] spec: | - - PayloadStatus = uint8 + + PayloadStatus = Uint8 - name: PayloadValidationStatus#bellatrix sources: [] spec: | - - PayloadValidationStatus = uint8 + + PayloadValidationStatus = Uint8 - name: Root#phase0 @@ -444,8 +419,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const RowIndex = spec: | - - RowIndex = uint64 + + RowIndex = Uint64 - name: Slot#phase0 @@ -453,15 +428,15 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const Slot = spec: | - - Slot = uint64 + + Slot = Uint64 - name: SubnetID#phase0 sources: [] spec: | - - SubnetID = uint64 + + SubnetID = Uint64 - name: Transaction#bellatrix @@ -487,8 +462,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const ValidatorIndex = spec: | - - ValidatorIndex = uint64 + + ValidatorIndex = Uint64 - name: Version#phase0 @@ -514,8 +489,8 @@ - file: packages/types/src/primitive/sszTypes.ts search: export const WithdrawalIndex = spec: | - - WithdrawalIndex = uint64 + + WithdrawalIndex = Uint64 - name: WithdrawalRequests#electra