diff --git a/specrefs/.ethspecify.yml b/specrefs/.ethspecify.yml
index e4fa651a1202..722dc77caba7 100644
--- a/specrefs/.ethspecify.yml
+++ b/specrefs/.ethspecify.yml
@@ -2,6 +2,10 @@ version: v1.6.1
style: full
specrefs:
+ auto_add_missing_entries: true
+ auto_standardize_names: true
+ require_exceptions_have_fork: true
+
files:
- configs.yml
- constants.yml
diff --git a/specrefs/configs.yml b/specrefs/configs.yml
index c9f0a716e950..ecae780343a5 100644
--- a/specrefs/configs.yml
+++ b/specrefs/configs.yml
@@ -1,4 +1,4 @@
-- name: AGGREGATE_DUE_BPS
+- name: AGGREGATE_DUE_BPS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "AGGREGATE_DUE_BPS:"
@@ -7,7 +7,7 @@
AGGREGATE_DUE_BPS: uint64 = 6667
-- name: AGGREGATE_DUE_BPS_GLOAS
+- name: AGGREGATE_DUE_BPS_GLOAS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "AGGREGATE_DUE_BPS_GLOAS:"
@@ -16,7 +16,7 @@
AGGREGATE_DUE_BPS_GLOAS: uint64 = 5000
-- name: ALTAIR_FORK_EPOCH
+- name: ALTAIR_FORK_EPOCH#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ALTAIR_FORK_EPOCH:"
@@ -25,7 +25,7 @@
ALTAIR_FORK_EPOCH: Epoch = 74240
-- name: ALTAIR_FORK_VERSION
+- name: ALTAIR_FORK_VERSION#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ALTAIR_FORK_VERSION:"
@@ -34,7 +34,7 @@
ALTAIR_FORK_VERSION: Version = '0x01000000'
-- name: ATTESTATION_DUE_BPS
+- name: ATTESTATION_DUE_BPS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: '^\s+ATTESTATION_DUE_BPS:'
@@ -44,7 +44,7 @@
ATTESTATION_DUE_BPS: uint64 = 3333
-- name: ATTESTATION_DUE_BPS_GLOAS
+- name: ATTESTATION_DUE_BPS_GLOAS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ATTESTATION_DUE_BPS_GLOAS:"
@@ -53,7 +53,7 @@
ATTESTATION_DUE_BPS_GLOAS: uint64 = 2500
-- name: ATTESTATION_PROPAGATION_SLOT_RANGE
+- name: ATTESTATION_PROPAGATION_SLOT_RANGE#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ATTESTATION_PROPAGATION_SLOT_RANGE:"
@@ -62,7 +62,7 @@
ATTESTATION_PROPAGATION_SLOT_RANGE = 32
-- name: ATTESTATION_SUBNET_COUNT
+- name: ATTESTATION_SUBNET_COUNT#phase0
sources:
- file: packages/params/src/index.ts
search: export const ATTESTATION_SUBNET_COUNT =
@@ -71,7 +71,7 @@
ATTESTATION_SUBNET_COUNT = 64
-- name: ATTESTATION_SUBNET_EXTRA_BITS
+- name: ATTESTATION_SUBNET_EXTRA_BITS#phase0
sources:
- file: packages/params/src/index.ts
search: export const ATTESTATION_SUBNET_EXTRA_BITS =
@@ -80,7 +80,7 @@
ATTESTATION_SUBNET_EXTRA_BITS = 0
-- name: ATTESTATION_SUBNET_PREFIX_BITS
+- name: ATTESTATION_SUBNET_PREFIX_BITS#phase0
sources:
- file: packages/params/src/index.ts
search: export const ATTESTATION_SUBNET_PREFIX_BITS =
@@ -89,7 +89,7 @@
ATTESTATION_SUBNET_PREFIX_BITS: int = 6
-- name: BALANCE_PER_ADDITIONAL_CUSTODY_GROUP
+- name: BALANCE_PER_ADDITIONAL_CUSTODY_GROUP#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BALANCE_PER_ADDITIONAL_CUSTODY_GROUP:"
@@ -98,7 +98,7 @@
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: Gwei = 32000000000
-- name: BELLATRIX_FORK_EPOCH
+- name: BELLATRIX_FORK_EPOCH#bellatrix
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BELLATRIX_FORK_EPOCH:"
@@ -107,7 +107,7 @@
BELLATRIX_FORK_EPOCH: Epoch = 144896
-- name: BELLATRIX_FORK_VERSION
+- name: BELLATRIX_FORK_VERSION#bellatrix
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BELLATRIX_FORK_VERSION:"
@@ -116,7 +116,7 @@
BELLATRIX_FORK_VERSION: Version = '0x02000000'
-- name: BLOB_SCHEDULE
+- name: BLOB_SCHEDULE#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BLOB_SCHEDULE:"
@@ -134,7 +134,7 @@
)
-- name: BLOB_SIDECAR_SUBNET_COUNT
+- name: BLOB_SIDECAR_SUBNET_COUNT#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BLOB_SIDECAR_SUBNET_COUNT:"
@@ -143,7 +143,7 @@
BLOB_SIDECAR_SUBNET_COUNT = 6
-- name: BLOB_SIDECAR_SUBNET_COUNT_ELECTRA
+- name: BLOB_SIDECAR_SUBNET_COUNT_ELECTRA#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "BLOB_SIDECAR_SUBNET_COUNT_ELECTRA:"
@@ -152,7 +152,7 @@
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA = 9
-- name: CAPELLA_FORK_EPOCH
+- name: CAPELLA_FORK_EPOCH#capella
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "CAPELLA_FORK_EPOCH:"
@@ -161,7 +161,7 @@
CAPELLA_FORK_EPOCH: Epoch = 194048
-- name: CAPELLA_FORK_VERSION
+- name: CAPELLA_FORK_VERSION#capella
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "CAPELLA_FORK_VERSION:"
@@ -170,7 +170,7 @@
CAPELLA_FORK_VERSION: Version = '0x03000000'
-- name: CHURN_LIMIT_QUOTIENT
+- name: CHURN_LIMIT_QUOTIENT#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "CHURN_LIMIT_QUOTIENT:"
@@ -179,7 +179,7 @@
CHURN_LIMIT_QUOTIENT: uint64 = 65536
-- name: CONTRIBUTION_DUE_BPS
+- name: CONTRIBUTION_DUE_BPS#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "CONTRIBUTION_DUE_BPS:"
@@ -188,7 +188,7 @@
CONTRIBUTION_DUE_BPS: uint64 = 6667
-- name: CONTRIBUTION_DUE_BPS_GLOAS
+- name: CONTRIBUTION_DUE_BPS_GLOAS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "CONTRIBUTION_DUE_BPS_GLOAS:"
@@ -197,7 +197,7 @@
CONTRIBUTION_DUE_BPS_GLOAS: uint64 = 5000
-- name: CUSTODY_REQUIREMENT
+- name: CUSTODY_REQUIREMENT#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: '^\s+CUSTODY_REQUIREMENT:'
@@ -207,7 +207,7 @@
CUSTODY_REQUIREMENT = 4
-- name: DATA_COLUMN_SIDECAR_SUBNET_COUNT
+- name: DATA_COLUMN_SIDECAR_SUBNET_COUNT#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "DATA_COLUMN_SIDECAR_SUBNET_COUNT:"
@@ -216,7 +216,7 @@
DATA_COLUMN_SIDECAR_SUBNET_COUNT = 128
-- name: DENEB_FORK_EPOCH
+- name: DENEB_FORK_EPOCH#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "DENEB_FORK_EPOCH:"
@@ -225,7 +225,7 @@
DENEB_FORK_EPOCH: Epoch = 269568
-- name: DENEB_FORK_VERSION
+- name: DENEB_FORK_VERSION#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "DENEB_FORK_VERSION:"
@@ -234,7 +234,7 @@
DENEB_FORK_VERSION: Version = '0x04000000'
-- name: EJECTION_BALANCE
+- name: EJECTION_BALANCE#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "EJECTION_BALANCE:"
@@ -243,7 +243,7 @@
EJECTION_BALANCE: Gwei = 16000000000
-- name: ELECTRA_FORK_EPOCH
+- name: ELECTRA_FORK_EPOCH#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ELECTRA_FORK_EPOCH:"
@@ -252,7 +252,7 @@
ELECTRA_FORK_EPOCH: Epoch = 364032
-- name: ELECTRA_FORK_VERSION
+- name: ELECTRA_FORK_VERSION#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ELECTRA_FORK_VERSION:"
@@ -261,7 +261,7 @@
ELECTRA_FORK_VERSION: Version = '0x05000000'
-- name: EPOCHS_PER_SUBNET_SUBSCRIPTION
+- name: EPOCHS_PER_SUBNET_SUBSCRIPTION#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "EPOCHS_PER_SUBNET_SUBSCRIPTION:"
@@ -270,7 +270,7 @@
EPOCHS_PER_SUBNET_SUBSCRIPTION = 256
-- name: ETH1_FOLLOW_DISTANCE
+- name: ETH1_FOLLOW_DISTANCE#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "ETH1_FOLLOW_DISTANCE:"
@@ -279,7 +279,7 @@
ETH1_FOLLOW_DISTANCE: uint64 = 2048
-- name: FULU_FORK_EPOCH
+- name: FULU_FORK_EPOCH#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "FULU_FORK_EPOCH:"
@@ -288,7 +288,7 @@
FULU_FORK_EPOCH: Epoch = 411392
-- name: FULU_FORK_VERSION
+- name: FULU_FORK_VERSION#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "FULU_FORK_VERSION:"
@@ -297,7 +297,7 @@
FULU_FORK_VERSION: Version = '0x06000000'
-- name: GENESIS_DELAY
+- name: GENESIS_DELAY#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "GENESIS_DELAY:"
@@ -306,7 +306,7 @@
GENESIS_DELAY: uint64 = 604800
-- name: GENESIS_FORK_VERSION
+- name: GENESIS_FORK_VERSION#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "GENESIS_FORK_VERSION:"
@@ -315,7 +315,7 @@
GENESIS_FORK_VERSION: Version = '0x00000000'
-- name: GLOAS_FORK_EPOCH
+- name: GLOAS_FORK_EPOCH#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "GLOAS_FORK_EPOCH:"
@@ -324,7 +324,7 @@
GLOAS_FORK_EPOCH: Epoch = 18446744073709551615
-- name: GLOAS_FORK_VERSION
+- name: GLOAS_FORK_VERSION#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "GLOAS_FORK_VERSION:"
@@ -333,7 +333,7 @@
GLOAS_FORK_VERSION: Version = '0x07000000'
-- name: INACTIVITY_SCORE_BIAS
+- name: INACTIVITY_SCORE_BIAS#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "INACTIVITY_SCORE_BIAS:"
@@ -342,7 +342,7 @@
INACTIVITY_SCORE_BIAS: uint64 = 4
-- name: INACTIVITY_SCORE_RECOVERY_RATE
+- name: INACTIVITY_SCORE_RECOVERY_RATE#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "INACTIVITY_SCORE_RECOVERY_RATE:"
@@ -351,7 +351,7 @@
INACTIVITY_SCORE_RECOVERY_RATE: uint64 = 16
-- name: MAXIMUM_GOSSIP_CLOCK_DISPARITY
+- name: MAXIMUM_GOSSIP_CLOCK_DISPARITY#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAXIMUM_GOSSIP_CLOCK_DISPARITY:"
@@ -360,7 +360,7 @@
MAXIMUM_GOSSIP_CLOCK_DISPARITY = 500
-- name: MAX_BLOBS_PER_BLOCK
+- name: MAX_BLOBS_PER_BLOCK#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: '^ MAX_BLOBS_PER_BLOCK:'
@@ -370,7 +370,7 @@
MAX_BLOBS_PER_BLOCK: uint64 = 6
-- name: MAX_BLOBS_PER_BLOCK_ELECTRA
+- name: MAX_BLOBS_PER_BLOCK_ELECTRA#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_BLOBS_PER_BLOCK_ELECTRA:"
@@ -379,7 +379,7 @@
MAX_BLOBS_PER_BLOCK_ELECTRA: uint64 = 9
-- name: MAX_PAYLOAD_SIZE
+- name: MAX_PAYLOAD_SIZE#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_PAYLOAD_SIZE:"
@@ -388,7 +388,7 @@
MAX_PAYLOAD_SIZE = 10485760
-- name: MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT
+- name: MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT:"
@@ -397,7 +397,7 @@
MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT: uint64 = 8
-- name: MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT
+- name: MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT:"
@@ -406,7 +406,7 @@
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: Gwei = 256000000000
-- name: MAX_REQUEST_BLOB_SIDECARS
+- name: MAX_REQUEST_BLOB_SIDECARS#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_BLOB_SIDECARS:"
@@ -415,7 +415,7 @@
MAX_REQUEST_BLOB_SIDECARS = 768
-- name: MAX_REQUEST_BLOB_SIDECARS_ELECTRA
+- name: MAX_REQUEST_BLOB_SIDECARS_ELECTRA#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_BLOB_SIDECARS_ELECTRA:"
@@ -424,7 +424,7 @@
MAX_REQUEST_BLOB_SIDECARS_ELECTRA = 1152
-- name: MAX_REQUEST_BLOCKS
+- name: MAX_REQUEST_BLOCKS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_BLOCKS:"
@@ -433,7 +433,7 @@
MAX_REQUEST_BLOCKS = 1024
-- name: MAX_REQUEST_BLOCKS_DENEB
+- name: MAX_REQUEST_BLOCKS_DENEB#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_BLOCKS_DENEB:"
@@ -442,7 +442,7 @@
MAX_REQUEST_BLOCKS_DENEB = 128
-- name: MAX_REQUEST_DATA_COLUMN_SIDECARS
+- name: MAX_REQUEST_DATA_COLUMN_SIDECARS#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_DATA_COLUMN_SIDECARS:"
@@ -451,7 +451,7 @@
MAX_REQUEST_DATA_COLUMN_SIDECARS = 16384
-- name: MAX_REQUEST_PAYLOADS
+- name: MAX_REQUEST_PAYLOADS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MAX_REQUEST_PAYLOADS:"
@@ -460,7 +460,7 @@
MAX_REQUEST_PAYLOADS = 128
-- name: MESSAGE_DOMAIN_INVALID_SNAPPY
+- name: MESSAGE_DOMAIN_INVALID_SNAPPY#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MESSAGE_DOMAIN_INVALID_SNAPPY:"
@@ -469,7 +469,7 @@
MESSAGE_DOMAIN_INVALID_SNAPPY: DomainType = '0x00000000'
-- name: MESSAGE_DOMAIN_VALID_SNAPPY
+- name: MESSAGE_DOMAIN_VALID_SNAPPY#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MESSAGE_DOMAIN_VALID_SNAPPY:"
@@ -478,7 +478,7 @@
MESSAGE_DOMAIN_VALID_SNAPPY: DomainType = '0x01000000'
-- name: MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS
+- name: MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS#deneb
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS:"
@@ -487,7 +487,7 @@
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS = 4096
-- name: MIN_EPOCHS_FOR_BLOCK_REQUESTS
+- name: MIN_EPOCHS_FOR_BLOCK_REQUESTS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_EPOCHS_FOR_BLOCK_REQUESTS:"
@@ -496,7 +496,7 @@
MIN_EPOCHS_FOR_BLOCK_REQUESTS = 33024
-- name: MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS
+- name: MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS:"
@@ -505,7 +505,7 @@
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS = 4096
-- name: MIN_GENESIS_ACTIVE_VALIDATOR_COUNT
+- name: MIN_GENESIS_ACTIVE_VALIDATOR_COUNT#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_GENESIS_ACTIVE_VALIDATOR_COUNT:"
@@ -514,7 +514,7 @@
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: uint64 = 16384
-- name: MIN_GENESIS_TIME
+- name: MIN_GENESIS_TIME#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_GENESIS_TIME:"
@@ -523,7 +523,7 @@
MIN_GENESIS_TIME: uint64 = 1606824000
-- name: MIN_PER_EPOCH_CHURN_LIMIT
+- name: MIN_PER_EPOCH_CHURN_LIMIT#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_PER_EPOCH_CHURN_LIMIT:"
@@ -532,7 +532,7 @@
MIN_PER_EPOCH_CHURN_LIMIT: uint64 = 4
-- name: MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA
+- name: MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA#electra
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA:"
@@ -541,7 +541,7 @@
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: Gwei = 128000000000
-- name: MIN_VALIDATOR_WITHDRAWABILITY_DELAY
+- name: MIN_VALIDATOR_WITHDRAWABILITY_DELAY#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "MIN_VALIDATOR_WITHDRAWABILITY_DELAY:"
@@ -550,7 +550,7 @@
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: uint64 = 256
-- name: NUMBER_OF_CUSTODY_GROUPS
+- name: NUMBER_OF_CUSTODY_GROUPS#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "NUMBER_OF_CUSTODY_GROUPS:"
@@ -559,7 +559,7 @@
NUMBER_OF_CUSTODY_GROUPS = 128
-- name: PAYLOAD_ATTESTATION_DUE_BPS
+- name: PAYLOAD_ATTESTATION_DUE_BPS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "PAYLOAD_ATTESTATION_DUE_BPS:"
@@ -568,7 +568,7 @@
PAYLOAD_ATTESTATION_DUE_BPS: uint64 = 7500
-- name: PROPOSER_REORG_CUTOFF_BPS
+- name: PROPOSER_REORG_CUTOFF_BPS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "PROPOSER_REORG_CUTOFF_BPS:"
@@ -577,7 +577,7 @@
PROPOSER_REORG_CUTOFF_BPS: uint64 = 1667
-- name: PROPOSER_SCORE_BOOST
+- name: PROPOSER_SCORE_BOOST#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "PROPOSER_SCORE_BOOST:"
@@ -586,7 +586,7 @@
PROPOSER_SCORE_BOOST: uint64 = 40
-- name: REORG_HEAD_WEIGHT_THRESHOLD
+- name: REORG_HEAD_WEIGHT_THRESHOLD#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "REORG_HEAD_WEIGHT_THRESHOLD:"
@@ -595,7 +595,7 @@
REORG_HEAD_WEIGHT_THRESHOLD: uint64 = 20
-- name: REORG_MAX_EPOCHS_SINCE_FINALIZATION
+- name: REORG_MAX_EPOCHS_SINCE_FINALIZATION#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "REORG_MAX_EPOCHS_SINCE_FINALIZATION:"
@@ -604,7 +604,7 @@
REORG_MAX_EPOCHS_SINCE_FINALIZATION: Epoch = 2
-- name: REORG_PARENT_WEIGHT_THRESHOLD
+- name: REORG_PARENT_WEIGHT_THRESHOLD#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "REORG_PARENT_WEIGHT_THRESHOLD:"
@@ -613,7 +613,7 @@
REORG_PARENT_WEIGHT_THRESHOLD: uint64 = 160
-- name: SAMPLES_PER_SLOT
+- name: SAMPLES_PER_SLOT#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SAMPLES_PER_SLOT:"
@@ -622,7 +622,7 @@
SAMPLES_PER_SLOT = 8
-- name: SECONDS_PER_ETH1_BLOCK
+- name: SECONDS_PER_ETH1_BLOCK#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SECONDS_PER_ETH1_BLOCK:"
@@ -631,7 +631,7 @@
SECONDS_PER_ETH1_BLOCK: uint64 = 14
-- name: SECONDS_PER_SLOT
+- name: SECONDS_PER_SLOT#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SECONDS_PER_SLOT:"
@@ -640,7 +640,7 @@
SECONDS_PER_SLOT: uint64 = 12
-- name: SHARD_COMMITTEE_PERIOD
+- name: SHARD_COMMITTEE_PERIOD#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SHARD_COMMITTEE_PERIOD:"
@@ -649,7 +649,7 @@
SHARD_COMMITTEE_PERIOD: uint64 = 256
-- name: SLOT_DURATION_MS
+- name: SLOT_DURATION_MS#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SLOT_DURATION_MS:"
@@ -658,7 +658,7 @@
SLOT_DURATION_MS: uint64 = 12000
-- name: SUBNETS_PER_NODE
+- name: SUBNETS_PER_NODE#phase0
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SUBNETS_PER_NODE:"
@@ -667,7 +667,7 @@
SUBNETS_PER_NODE = 2
-- name: SYNC_MESSAGE_DUE_BPS
+- name: SYNC_MESSAGE_DUE_BPS#altair
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SYNC_MESSAGE_DUE_BPS:"
@@ -676,7 +676,7 @@
SYNC_MESSAGE_DUE_BPS: uint64 = 3333
-- name: SYNC_MESSAGE_DUE_BPS_GLOAS
+- name: SYNC_MESSAGE_DUE_BPS_GLOAS#gloas
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "SYNC_MESSAGE_DUE_BPS_GLOAS:"
@@ -685,7 +685,7 @@
SYNC_MESSAGE_DUE_BPS_GLOAS: uint64 = 2500
-- name: TERMINAL_BLOCK_HASH
+- name: TERMINAL_BLOCK_HASH#bellatrix
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "TERMINAL_BLOCK_HASH:"
@@ -694,7 +694,7 @@
TERMINAL_BLOCK_HASH: Hash32 = '0x0000000000000000000000000000000000000000000000000000000000000000'
-- name: TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH
+- name: TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH#bellatrix
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH:"
@@ -703,7 +703,7 @@
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH = 18446744073709551615
-- name: TERMINAL_TOTAL_DIFFICULTY
+- name: TERMINAL_TOTAL_DIFFICULTY#bellatrix
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "TERMINAL_TOTAL_DIFFICULTY:"
@@ -712,7 +712,7 @@
TERMINAL_TOTAL_DIFFICULTY = 58750000000000000000000
-- name: VALIDATOR_CUSTODY_REQUIREMENT
+- name: VALIDATOR_CUSTODY_REQUIREMENT#fulu
sources:
- file: packages/config/src/chainConfig/configs/mainnet.ts
search: "VALIDATOR_CUSTODY_REQUIREMENT:"
diff --git a/specrefs/constants.yml b/specrefs/constants.yml
index 88c66f9c75fa..4c09d9ba3881 100644
--- a/specrefs/constants.yml
+++ b/specrefs/constants.yml
@@ -1,4 +1,4 @@
-- name: BASE_REWARDS_PER_EPOCH
+- name: BASE_REWARDS_PER_EPOCH#phase0
sources:
- file: packages/params/src/index.ts
search: export const BASE_REWARDS_PER_EPOCH =
@@ -7,7 +7,7 @@
BASE_REWARDS_PER_EPOCH: uint64 = 4
-- name: BASIS_POINTS
+- name: BASIS_POINTS#phase0
sources:
- file: packages/params/src/index.ts
search: export const BASIS_POINTS =
@@ -16,14 +16,14 @@
BASIS_POINTS: uint64 = 10000
-- name: BLS_MODULUS
+- name: BLS_MODULUS#deneb
sources: []
spec: |
BLS_MODULUS = 52435875175126190479447740508185965837690552500527637822603658699938581184513
-- name: BLS_WITHDRAWAL_PREFIX
+- name: BLS_WITHDRAWAL_PREFIX#phase0
sources:
- file: packages/params/src/index.ts
search: export const BLS_WITHDRAWAL_PREFIX =
@@ -32,7 +32,7 @@
BLS_WITHDRAWAL_PREFIX: Bytes1 = '0x00'
-- name: BUILDER_PAYMENT_THRESHOLD_DENOMINATOR
+- name: BUILDER_PAYMENT_THRESHOLD_DENOMINATOR#gloas
sources:
- file: packages/params/src/index.ts
search: export const BUILDER_PAYMENT_THRESHOLD_DENOMINATOR =
@@ -41,7 +41,7 @@
BUILDER_PAYMENT_THRESHOLD_DENOMINATOR: uint64 = 10
-- name: BUILDER_PAYMENT_THRESHOLD_NUMERATOR
+- name: BUILDER_PAYMENT_THRESHOLD_NUMERATOR#gloas
sources:
- file: packages/params/src/index.ts
search: export const BUILDER_PAYMENT_THRESHOLD_NUMERATOR =
@@ -50,7 +50,7 @@
BUILDER_PAYMENT_THRESHOLD_NUMERATOR: uint64 = 6
-- name: BUILDER_WITHDRAWAL_PREFIX
+- name: BUILDER_WITHDRAWAL_PREFIX#gloas
sources:
- file: packages/params/src/index.ts
search: export const BUILDER_WITHDRAWAL_PREFIX =
@@ -59,14 +59,14 @@
BUILDER_WITHDRAWAL_PREFIX: Bytes1 = '0x03'
-- name: BYTES_PER_COMMITMENT
+- name: BYTES_PER_COMMITMENT#deneb
sources: []
spec: |
BYTES_PER_COMMITMENT: uint64 = 48
-- name: BYTES_PER_FIELD_ELEMENT
+- name: BYTES_PER_FIELD_ELEMENT#deneb
sources:
- file: packages/params/src/index.ts
search: export const BYTES_PER_FIELD_ELEMENT =
@@ -75,14 +75,14 @@
BYTES_PER_FIELD_ELEMENT: uint64 = 32
-- name: BYTES_PER_PROOF
+- name: BYTES_PER_PROOF#deneb
sources: []
spec: |
BYTES_PER_PROOF: uint64 = 48
-- name: COMPOUNDING_WITHDRAWAL_PREFIX
+- name: COMPOUNDING_WITHDRAWAL_PREFIX#electra
sources:
- file: packages/params/src/index.ts
search: export const COMPOUNDING_WITHDRAWAL_PREFIX =
@@ -91,7 +91,7 @@
COMPOUNDING_WITHDRAWAL_PREFIX: Bytes1 = '0x02'
-- name: CONSOLIDATION_REQUEST_TYPE
+- name: CONSOLIDATION_REQUEST_TYPE#electra
sources:
- file: packages/params/src/index.ts
search: export const CONSOLIDATION_REQUEST_TYPE =
@@ -100,7 +100,7 @@
CONSOLIDATION_REQUEST_TYPE: Bytes1 = '0x02'
-- name: DEPOSIT_CONTRACT_TREE_DEPTH
+- name: DEPOSIT_CONTRACT_TREE_DEPTH#phase0
sources:
- file: packages/params/src/index.ts
search: export const DEPOSIT_CONTRACT_TREE_DEPTH =
@@ -109,7 +109,7 @@
DEPOSIT_CONTRACT_TREE_DEPTH: uint64 = 2**5
-- name: DEPOSIT_REQUEST_TYPE
+- name: DEPOSIT_REQUEST_TYPE#electra
sources:
- file: packages/params/src/index.ts
search: export const DEPOSIT_REQUEST_TYPE =
@@ -118,7 +118,7 @@
DEPOSIT_REQUEST_TYPE: Bytes1 = '0x00'
-- name: DOMAIN_AGGREGATE_AND_PROOF
+- name: DOMAIN_AGGREGATE_AND_PROOF#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_AGGREGATE_AND_PROOF =
@@ -127,7 +127,7 @@
DOMAIN_AGGREGATE_AND_PROOF: DomainType = '0x06000000'
-- name: DOMAIN_APPLICATION_MASK
+- name: DOMAIN_APPLICATION_MASK#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_APPLICATION_MASK =
@@ -136,7 +136,7 @@
DOMAIN_APPLICATION_MASK: DomainType = '0x00000001'
-- name: DOMAIN_BEACON_ATTESTER
+- name: DOMAIN_BEACON_ATTESTER#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_BEACON_ATTESTER =
@@ -145,7 +145,7 @@
DOMAIN_BEACON_ATTESTER: DomainType = '0x01000000'
-- name: DOMAIN_BEACON_BUILDER
+- name: DOMAIN_BEACON_BUILDER#gloas
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_BEACON_BUILDER =
@@ -154,7 +154,7 @@
DOMAIN_BEACON_BUILDER: DomainType = '0x1B000000'
-- name: DOMAIN_BEACON_PROPOSER
+- name: DOMAIN_BEACON_PROPOSER#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_BEACON_PROPOSER =
@@ -163,7 +163,7 @@
DOMAIN_BEACON_PROPOSER: DomainType = '0x00000000'
-- name: DOMAIN_BLS_TO_EXECUTION_CHANGE
+- name: DOMAIN_BLS_TO_EXECUTION_CHANGE#capella
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_BLS_TO_EXECUTION_CHANGE =
@@ -172,7 +172,7 @@
DOMAIN_BLS_TO_EXECUTION_CHANGE: DomainType = '0x0A000000'
-- name: DOMAIN_CONTRIBUTION_AND_PROOF
+- name: DOMAIN_CONTRIBUTION_AND_PROOF#altair
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_CONTRIBUTION_AND_PROOF =
@@ -181,7 +181,7 @@
DOMAIN_CONTRIBUTION_AND_PROOF: DomainType = '0x09000000'
-- name: DOMAIN_DEPOSIT
+- name: DOMAIN_DEPOSIT#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_DEPOSIT =
@@ -190,7 +190,7 @@
DOMAIN_DEPOSIT: DomainType = '0x03000000'
-- name: DOMAIN_PTC_ATTESTER
+- name: DOMAIN_PTC_ATTESTER#gloas
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_PTC_ATTESTER =
@@ -199,7 +199,7 @@
DOMAIN_PTC_ATTESTER: DomainType = '0x0C000000'
-- name: DOMAIN_RANDAO
+- name: DOMAIN_RANDAO#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_RANDAO =
@@ -208,7 +208,7 @@
DOMAIN_RANDAO: DomainType = '0x02000000'
-- name: DOMAIN_SELECTION_PROOF
+- name: DOMAIN_SELECTION_PROOF#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_SELECTION_PROOF =
@@ -217,7 +217,7 @@
DOMAIN_SELECTION_PROOF: DomainType = '0x05000000'
-- name: DOMAIN_SYNC_COMMITTEE
+- name: DOMAIN_SYNC_COMMITTEE#altair
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_SYNC_COMMITTEE =
@@ -226,7 +226,7 @@
DOMAIN_SYNC_COMMITTEE: DomainType = '0x07000000'
-- name: DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF
+- name: DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF#altair
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF =
@@ -235,7 +235,7 @@
DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: DomainType = '0x08000000'
-- name: DOMAIN_VOLUNTARY_EXIT
+- name: DOMAIN_VOLUNTARY_EXIT#phase0
sources:
- file: packages/params/src/index.ts
search: export const DOMAIN_VOLUNTARY_EXIT =
@@ -244,14 +244,14 @@
DOMAIN_VOLUNTARY_EXIT: DomainType = '0x04000000'
-- name: ENDIANNESS
+- name: ENDIANNESS#phase0
sources: []
spec: |
ENDIANNESS = 'little'
-- name: ETH1_ADDRESS_WITHDRAWAL_PREFIX
+- name: ETH1_ADDRESS_WITHDRAWAL_PREFIX#phase0
sources:
- file: packages/params/src/index.ts
search: export const ETH1_ADDRESS_WITHDRAWAL_PREFIX =
@@ -260,14 +260,14 @@
ETH1_ADDRESS_WITHDRAWAL_PREFIX: Bytes1 = '0x01'
-- name: ETH_TO_GWEI
+- name: ETH_TO_GWEI#phase0
sources: []
spec: |
ETH_TO_GWEI: uint64 = 10**9
-- name: FAR_FUTURE_EPOCH
+- name: FAR_FUTURE_EPOCH#phase0
sources:
- file: packages/params/src/index.ts
search: export const FAR_FUTURE_EPOCH =
@@ -276,14 +276,14 @@
FAR_FUTURE_EPOCH: Epoch = 2**64 - 1
-- name: FIAT_SHAMIR_PROTOCOL_DOMAIN
+- name: FIAT_SHAMIR_PROTOCOL_DOMAIN#deneb
sources: []
spec: |
FIAT_SHAMIR_PROTOCOL_DOMAIN = b'FSBLOBVERIFY_V1_'
-- name: FULL_EXIT_REQUEST_AMOUNT
+- name: FULL_EXIT_REQUEST_AMOUNT#electra
sources:
- file: packages/params/src/index.ts
search: export const FULL_EXIT_REQUEST_AMOUNT =
@@ -292,14 +292,14 @@
FULL_EXIT_REQUEST_AMOUNT: uint64 = 0
-- name: G1_POINT_AT_INFINITY
+- name: G1_POINT_AT_INFINITY#deneb
sources: []
spec: |
G1_POINT_AT_INFINITY: Bytes48 = b'\xc0' + b'\x00' * 47
-- name: G2_POINT_AT_INFINITY
+- name: G2_POINT_AT_INFINITY#altair
sources:
- file: packages/state-transition/src/constants/constants.ts
search: export const G2_POINT_AT_INFINITY =
@@ -308,7 +308,7 @@
G2_POINT_AT_INFINITY: BLSSignature = b'\xc0' + b'\x00' * 95
-- name: GENESIS_EPOCH
+- name: GENESIS_EPOCH#phase0
sources:
- file: packages/params/src/index.ts
search: export const GENESIS_EPOCH =
@@ -317,7 +317,7 @@
GENESIS_EPOCH: Epoch = 0
-- name: GENESIS_SLOT
+- name: GENESIS_SLOT#phase0
sources:
- file: packages/params/src/index.ts
search: export const GENESIS_SLOT =
@@ -326,7 +326,7 @@
GENESIS_SLOT: Slot = 0
-- name: INTERVALS_PER_SLOT
+- name: INTERVALS_PER_SLOT#phase0
sources:
- file: packages/params/src/index.ts
search: export const INTERVALS_PER_SLOT =
@@ -335,7 +335,7 @@
INTERVALS_PER_SLOT: uint64 = 3
-- name: JUSTIFICATION_BITS_LENGTH
+- name: JUSTIFICATION_BITS_LENGTH#phase0
sources:
- file: packages/params/src/index.ts
search: export const JUSTIFICATION_BITS_LENGTH =
@@ -344,28 +344,28 @@
JUSTIFICATION_BITS_LENGTH: uint64 = 4
-- name: KZG_ENDIANNESS
+- name: KZG_ENDIANNESS#deneb
sources: []
spec: |
KZG_ENDIANNESS = 'big'
-- name: KZG_SETUP_G2_LENGTH
+- name: KZG_SETUP_G2_LENGTH#deneb
sources: []
spec: |
KZG_SETUP_G2_LENGTH = 65
-- name: KZG_SETUP_G2_MONOMIAL
+- 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']
-- name: MAX_CONCURRENT_REQUESTS
+- name: MAX_CONCURRENT_REQUESTS#phase0
sources:
- file: packages/params/src/index.ts
search: export const MAX_CONCURRENT_REQUESTS =
@@ -374,7 +374,7 @@
MAX_CONCURRENT_REQUESTS = 2
-- name: MAX_REQUEST_LIGHT_CLIENT_UPDATES
+- name: MAX_REQUEST_LIGHT_CLIENT_UPDATES#altair
sources:
- file: packages/params/src/index.ts
search: export const MAX_REQUEST_LIGHT_CLIENT_UPDATES =
@@ -383,7 +383,7 @@
MAX_REQUEST_LIGHT_CLIENT_UPDATES = 2**7
-- name: NODE_ID_BITS
+- name: NODE_ID_BITS#phase0
sources:
- file: packages/params/src/index.ts
search: export const NODE_ID_BITS =
@@ -392,7 +392,7 @@
NODE_ID_BITS = 256
-- name: PARTICIPATION_FLAG_WEIGHTS
+- name: PARTICIPATION_FLAG_WEIGHTS#altair
sources:
- file: packages/params/src/index.ts
search: export const PARTICIPATION_FLAG_WEIGHTS =
@@ -401,35 +401,35 @@
PARTICIPATION_FLAG_WEIGHTS = [TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_WEIGHT, TIMELY_HEAD_WEIGHT]
-- name: PAYLOAD_STATUS_EMPTY
+- name: PAYLOAD_STATUS_EMPTY#gloas
sources: []
spec: |
PAYLOAD_STATUS_EMPTY: PayloadStatus = 1
-- name: PAYLOAD_STATUS_FULL
+- name: PAYLOAD_STATUS_FULL#gloas
sources: []
spec: |
PAYLOAD_STATUS_FULL: PayloadStatus = 2
-- name: PAYLOAD_STATUS_PENDING
+- name: PAYLOAD_STATUS_PENDING#gloas
sources: []
spec: |
PAYLOAD_STATUS_PENDING: PayloadStatus = 0
-- name: PRIMITIVE_ROOT_OF_UNITY
+- name: PRIMITIVE_ROOT_OF_UNITY#deneb
sources: []
spec: |
PRIMITIVE_ROOT_OF_UNITY = 7
-- name: PROPOSER_WEIGHT
+- name: PROPOSER_WEIGHT#altair
sources:
- file: packages/params/src/index.ts
search: export const PROPOSER_WEIGHT =
@@ -438,28 +438,28 @@
PROPOSER_WEIGHT: uint64 = 8
-- name: RANDOM_CHALLENGE_KZG_BATCH_DOMAIN
+- name: RANDOM_CHALLENGE_KZG_BATCH_DOMAIN#deneb
sources: []
spec: |
RANDOM_CHALLENGE_KZG_BATCH_DOMAIN = b'RCKZGBATCH___V1_'
-- name: RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN
+- name: RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN#fulu
sources: []
spec: |
RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN = b'RCKZGCBATCH__V1_'
-- name: SAFETY_DECAY
+- name: SAFETY_DECAY#phase0
sources: []
spec: |
SAFETY_DECAY: uint64 = 10
-- name: SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY
+- name: SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY#bellatrix
sources:
- file: packages/params/src/index.ts
search: export const SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY =
@@ -468,7 +468,7 @@
SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = 128
-- name: SYNC_COMMITTEE_SUBNET_COUNT
+- name: SYNC_COMMITTEE_SUBNET_COUNT#altair
sources:
- file: packages/params/src/index.ts
search: export const SYNC_COMMITTEE_SUBNET_COUNT =
@@ -477,7 +477,7 @@
SYNC_COMMITTEE_SUBNET_COUNT = 4
-- name: SYNC_REWARD_WEIGHT
+- name: SYNC_REWARD_WEIGHT#altair
sources:
- file: packages/params/src/index.ts
search: export const SYNC_REWARD_WEIGHT =
@@ -486,7 +486,7 @@
SYNC_REWARD_WEIGHT: uint64 = 2
-- name: TARGET_AGGREGATORS_PER_COMMITTEE
+- name: TARGET_AGGREGATORS_PER_COMMITTEE#phase0
sources:
- file: packages/params/src/index.ts
search: export const TARGET_AGGREGATORS_PER_COMMITTEE =
@@ -495,7 +495,7 @@
TARGET_AGGREGATORS_PER_COMMITTEE = 2**4
-- name: TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE
+- name: TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE#altair
sources:
- file: packages/params/src/index.ts
search: export const TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE =
@@ -504,7 +504,7 @@
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = 2**4
-- name: TIMELY_HEAD_FLAG_INDEX
+- name: TIMELY_HEAD_FLAG_INDEX#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_HEAD_FLAG_INDEX =
@@ -513,7 +513,7 @@
TIMELY_HEAD_FLAG_INDEX = 2
-- name: TIMELY_HEAD_WEIGHT
+- name: TIMELY_HEAD_WEIGHT#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_HEAD_WEIGHT =
@@ -522,7 +522,7 @@
TIMELY_HEAD_WEIGHT: uint64 = 14
-- name: TIMELY_SOURCE_FLAG_INDEX
+- name: TIMELY_SOURCE_FLAG_INDEX#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_SOURCE_FLAG_INDEX =
@@ -531,7 +531,7 @@
TIMELY_SOURCE_FLAG_INDEX = 0
-- name: TIMELY_SOURCE_WEIGHT
+- name: TIMELY_SOURCE_WEIGHT#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_SOURCE_WEIGHT =
@@ -540,7 +540,7 @@
TIMELY_SOURCE_WEIGHT: uint64 = 14
-- name: TIMELY_TARGET_FLAG_INDEX
+- name: TIMELY_TARGET_FLAG_INDEX#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_TARGET_FLAG_INDEX =
@@ -549,7 +549,7 @@
TIMELY_TARGET_FLAG_INDEX = 1
-- name: TIMELY_TARGET_WEIGHT
+- name: TIMELY_TARGET_WEIGHT#altair
sources:
- file: packages/params/src/index.ts
search: export const TIMELY_TARGET_WEIGHT =
@@ -558,28 +558,28 @@
TIMELY_TARGET_WEIGHT: uint64 = 26
-- name: UINT256_MAX
+- name: UINT256_MAX#fulu
sources: []
spec: |
UINT256_MAX: uint256 = 2**256 - 1
-- name: UINT64_MAX
+- name: UINT64_MAX#phase0
sources: []
spec: |
UINT64_MAX: uint64 = 2**64 - 1
-- name: UINT64_MAX_SQRT
+- name: UINT64_MAX_SQRT#phase0
sources: []
spec: |
UINT64_MAX_SQRT: uint64 = 4294967295
-- name: UNSET_DEPOSIT_REQUESTS_START_INDEX
+- name: UNSET_DEPOSIT_REQUESTS_START_INDEX#electra
sources:
- file: packages/params/src/index.ts
search: export const UNSET_DEPOSIT_REQUESTS_START_INDEX =
@@ -588,7 +588,7 @@
UNSET_DEPOSIT_REQUESTS_START_INDEX: uint64 = 2**64 - 1
-- name: VERSIONED_HASH_VERSION_KZG
+- name: VERSIONED_HASH_VERSION_KZG#deneb
sources:
- file: packages/params/src/index.ts
search: export const VERSIONED_HASH_VERSION_KZG =
@@ -597,7 +597,7 @@
VERSIONED_HASH_VERSION_KZG: Bytes1 = '0x01'
-- name: WEIGHT_DENOMINATOR
+- name: WEIGHT_DENOMINATOR#altair
sources:
- file: packages/params/src/index.ts
search: export const WEIGHT_DENOMINATOR =
@@ -606,7 +606,7 @@
WEIGHT_DENOMINATOR: uint64 = 64
-- name: WITHDRAWAL_REQUEST_TYPE
+- name: WITHDRAWAL_REQUEST_TYPE#electra
sources:
- file: packages/params/src/index.ts
search: export const WITHDRAWAL_REQUEST_TYPE =
diff --git a/specrefs/containers.yml b/specrefs/containers.yml
index c3f3a946351c..19d04a354f44 100644
--- a/specrefs/containers.yml
+++ b/specrefs/containers.yml
@@ -50,7 +50,7 @@
committee_bits: Bitvector[MAX_COMMITTEES_PER_SLOT]
-- name: AttestationData
+- name: AttestationData#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const AttestationData =
@@ -88,7 +88,7 @@
attestation_2: IndexedAttestation
-- name: BLSToExecutionChange
+- name: BLSToExecutionChange#capella
sources:
- file: packages/types/src/capella/sszTypes.ts
search: export const BLSToExecutionChange =
@@ -100,7 +100,7 @@
to_execution_address: ExecutionAddress
-- name: BeaconBlock
+- name: BeaconBlock#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const BeaconBlock =
@@ -268,7 +268,7 @@
payload_attestations: List[PayloadAttestation, MAX_PAYLOAD_ATTESTATIONS]
-- name: BeaconBlockHeader
+- name: BeaconBlockHeader#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const BeaconBlockHeader =
@@ -627,7 +627,7 @@
latest_withdrawals_root: Root
-- name: BlobIdentifier
+- name: BlobIdentifier#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const BlobIdentifier =
@@ -638,7 +638,7 @@
index: BlobIndex
-- name: BlobSidecar
+- name: BlobSidecar#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const BlobSidecar =
@@ -653,7 +653,7 @@
kzg_commitment_inclusion_proof: Vector[Bytes32, KZG_COMMITMENT_INCLUSION_PROOF_DEPTH]
-- name: BuilderPendingPayment
+- name: BuilderPendingPayment#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const BuilderPendingPayment =
@@ -664,7 +664,7 @@
withdrawal: BuilderPendingWithdrawal
-- name: BuilderPendingWithdrawal
+- name: BuilderPendingWithdrawal#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const BuilderPendingWithdrawal =
@@ -677,7 +677,7 @@
withdrawable_epoch: Epoch
-- name: Checkpoint
+- name: Checkpoint#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Checkpoint =
@@ -688,7 +688,7 @@
root: Root
-- name: ConsolidationRequest
+- name: ConsolidationRequest#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const ConsolidationRequest =
@@ -700,7 +700,7 @@
target_pubkey: BLSPubkey
-- name: ContributionAndProof
+- name: ContributionAndProof#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const ContributionAndProof =
@@ -748,7 +748,7 @@
beacon_block_root: Root
-- name: DataColumnsByRootIdentifier
+- name: DataColumnsByRootIdentifier#fulu
sources:
- file: packages/types/src/fulu/sszTypes.ts
search: export const DataColumnsByRootIdentifier =
@@ -759,7 +759,7 @@
columns: List[ColumnIndex, NUMBER_OF_COLUMNS]
-- name: Deposit
+- name: Deposit#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Deposit =
@@ -770,7 +770,7 @@
data: DepositData
-- name: DepositData
+- name: DepositData#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const DepositData =
@@ -783,7 +783,7 @@
signature: BLSSignature
-- name: DepositMessage
+- name: DepositMessage#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const DepositMessage =
@@ -795,7 +795,7 @@
amount: Gwei
-- name: DepositRequest
+- name: DepositRequest#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const DepositRequest =
@@ -809,7 +809,7 @@
index: uint64
-- name: Eth1Block
+- name: Eth1Block#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Eth1Block =
@@ -821,7 +821,7 @@
deposit_count: uint64
-- name: Eth1Data
+- name: Eth1Data#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Eth1Data =
@@ -909,7 +909,7 @@
excess_blob_gas: uint64
-- name: ExecutionPayloadBid
+- name: ExecutionPayloadBid#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const ExecutionPayloadBid =
@@ -929,7 +929,7 @@
blob_kzg_commitments_root: Root
-- name: ExecutionPayloadEnvelope
+- name: ExecutionPayloadEnvelope#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const ExecutionPayloadEnvelope =
@@ -1021,7 +1021,7 @@
excess_blob_gas: uint64
-- name: ExecutionRequests
+- name: ExecutionRequests#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const ExecutionRequests =
@@ -1036,7 +1036,7 @@
consolidations: List[ConsolidationRequest, MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD]
-- name: Fork
+- name: Fork#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Fork =
@@ -1048,7 +1048,7 @@
epoch: Epoch
-- name: ForkChoiceNode
+- name: ForkChoiceNode#gloas
sources: []
spec: |
@@ -1057,7 +1057,7 @@
payload_status: PayloadStatus # One of PAYLOAD_STATUS_* values
-- name: ForkData
+- name: ForkData#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const ForkData =
@@ -1068,7 +1068,7 @@
genesis_validators_root: Root
-- name: HistoricalBatch
+- name: HistoricalBatch#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const HistoricalBatch =
@@ -1079,7 +1079,7 @@
state_roots: Vector[Root, SLOTS_PER_HISTORICAL_ROOT]
-- name: HistoricalSummary
+- name: HistoricalSummary#capella
sources:
- file: packages/types/src/capella/sszTypes.ts
search: export const HistoricalSummary =
@@ -1115,7 +1115,7 @@
signature: BLSSignature
-- name: IndexedPayloadAttestation
+- name: IndexedPayloadAttestation#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const IndexedPayloadAttestation =
@@ -1279,7 +1279,7 @@
signature_slot: Slot
-- name: MatrixEntry
+- name: MatrixEntry#fulu
sources:
- file: packages/types/src/fulu/sszTypes.ts
search: export const MatrixEntry =
@@ -1292,7 +1292,7 @@
row_index: RowIndex
-- name: PayloadAttestation
+- name: PayloadAttestation#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const PayloadAttestation =
@@ -1304,7 +1304,7 @@
signature: BLSSignature
-- name: PayloadAttestationData
+- name: PayloadAttestationData#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const PayloadAttestationData =
@@ -1317,7 +1317,7 @@
blob_data_available: boolean
-- name: PayloadAttestationMessage
+- name: PayloadAttestationMessage#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const PayloadAttestationMessage =
@@ -1329,7 +1329,7 @@
signature: BLSSignature
-- name: PendingAttestation
+- name: PendingAttestation#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const PendingAttestation =
@@ -1342,7 +1342,7 @@
proposer_index: ValidatorIndex
-- name: PendingConsolidation
+- name: PendingConsolidation#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const PendingConsolidation =
@@ -1353,7 +1353,7 @@
target_index: ValidatorIndex
-- name: PendingDeposit
+- name: PendingDeposit#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const PendingDeposit =
@@ -1367,7 +1367,7 @@
slot: Slot
-- name: PendingPartialWithdrawal
+- name: PendingPartialWithdrawal#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const PendingPartialWithdrawal =
@@ -1379,7 +1379,7 @@
withdrawable_epoch: Epoch
-- name: PowBlock
+- name: PowBlock#bellatrix
sources:
- file: packages/types/src/bellatrix/sszTypes.ts
search: export const PowBlock =
@@ -1391,7 +1391,7 @@
total_difficulty: uint256
-- name: ProposerSlashing
+- name: ProposerSlashing#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const ProposerSlashing =
@@ -1425,7 +1425,7 @@
signature: BLSSignature
-- name: SignedBLSToExecutionChange
+- name: SignedBLSToExecutionChange#capella
sources:
- file: packages/types/src/capella/sszTypes.ts
search: export const SignedBLSToExecutionChange =
@@ -1436,7 +1436,7 @@
signature: BLSSignature
-- name: SignedBeaconBlock
+- name: SignedBeaconBlock#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const SignedBeaconBlock =
@@ -1447,7 +1447,7 @@
signature: BLSSignature
-- name: SignedBeaconBlockHeader
+- name: SignedBeaconBlockHeader#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const SignedBeaconBlockHeader =
@@ -1458,7 +1458,7 @@
signature: BLSSignature
-- name: SignedContributionAndProof
+- name: SignedContributionAndProof#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SignedContributionAndProof =
@@ -1469,7 +1469,7 @@
signature: BLSSignature
-- name: SignedExecutionPayloadBid
+- name: SignedExecutionPayloadBid#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const SignedExecutionPayloadBid =
@@ -1480,7 +1480,7 @@
signature: BLSSignature
-- name: SignedExecutionPayloadEnvelope
+- name: SignedExecutionPayloadEnvelope#gloas
sources:
- file: packages/types/src/gloas/sszTypes.ts
search: export const SignedExecutionPayloadEnvelope =
@@ -1491,7 +1491,7 @@
signature: BLSSignature
-- name: SignedVoluntaryExit
+- name: SignedVoluntaryExit#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const SignedVoluntaryExit =
@@ -1502,7 +1502,7 @@
signature: BLSSignature
-- name: SigningData
+- name: SigningData#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const SigningData =
@@ -1513,7 +1513,7 @@
domain: Domain
-- name: SingleAttestation
+- name: SingleAttestation#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const SingleAttestation =
@@ -1526,7 +1526,7 @@
signature: BLSSignature
-- name: SyncAggregate
+- name: SyncAggregate#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SyncAggregate =
@@ -1537,7 +1537,7 @@
sync_committee_signature: BLSSignature
-- name: SyncAggregatorSelectionData
+- name: SyncAggregatorSelectionData#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SyncAggregatorSelectionData =
@@ -1548,7 +1548,7 @@
subcommittee_index: uint64
-- name: SyncCommittee
+- name: SyncCommittee#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SyncCommittee =
@@ -1559,7 +1559,7 @@
aggregate_pubkey: BLSPubkey
-- name: SyncCommitteeContribution
+- name: SyncCommitteeContribution#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SyncCommitteeContribution =
@@ -1573,7 +1573,7 @@
signature: BLSSignature
-- name: SyncCommitteeMessage
+- name: SyncCommitteeMessage#altair
sources:
- file: packages/types/src/altair/sszTypes.ts
search: export const SyncCommitteeMessage =
@@ -1586,7 +1586,7 @@
signature: BLSSignature
-- name: Validator
+- name: Validator#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const Validator =
@@ -1603,7 +1603,7 @@
withdrawable_epoch: Epoch
-- name: VoluntaryExit
+- name: VoluntaryExit#phase0
sources:
- file: packages/types/src/phase0/sszTypes.ts
search: export const VoluntaryExit =
@@ -1614,7 +1614,7 @@
validator_index: ValidatorIndex
-- name: Withdrawal
+- name: Withdrawal#capella
sources:
- file: packages/types/src/capella/sszTypes.ts
search: export const Withdrawal =
@@ -1627,7 +1627,7 @@
amount: Gwei
-- name: WithdrawalRequest
+- name: WithdrawalRequest#electra
sources:
- file: packages/types/src/electra/sszTypes.ts
search: export const WithdrawalRequest =
diff --git a/specrefs/dataclasses.yml b/specrefs/dataclasses.yml
index 4a9435a266dd..34dabd4e20e5 100644
--- a/specrefs/dataclasses.yml
+++ b/specrefs/dataclasses.yml
@@ -1,4 +1,4 @@
-- name: BlobParameters
+- name: BlobParameters#fulu
sources:
- file: packages/config/src/forkConfig/types.ts
search: export type BlobParameters =
@@ -203,7 +203,7 @@
execution_requests: ExecutionRequests
-- name: OptimisticStore
+- name: OptimisticStore#bellatrix
sources: []
spec: |
diff --git a/specrefs/functions.yml b/specrefs/functions.yml
index fdd5e43c4f60..f614fab93c2b 100644
--- a/specrefs/functions.yml
+++ b/specrefs/functions.yml
@@ -1,23 +1,4 @@
-- name: _fft_field
- sources: []
- spec: |
-
- def _fft_field(
- vals: Sequence[BLSFieldElement], roots_of_unity: Sequence[BLSFieldElement]
- ) -> Sequence[BLSFieldElement]:
- if len(vals) == 1:
- return vals
- L = _fft_field(vals[::2], roots_of_unity[::2])
- R = _fft_field(vals[1::2], roots_of_unity[::2])
- o = [BLSFieldElement(0) for _ in vals]
- for i, (x, y) in enumerate(zip(L, R)):
- y_times_root = y * roots_of_unity[i]
- o[i] = x + y_times_root
- o[i + len(L)] = x - y_times_root
- return o
-
-
-- name: add_flag
+- name: add_flag#altair
sources: []
spec: |
@@ -29,21 +10,6 @@
return flags | flag
-- name: add_polynomialcoeff
- sources: []
- spec: |
-
- def add_polynomialcoeff(a: PolynomialCoeff, b: PolynomialCoeff) -> PolynomialCoeff:
- """
- Sum the coefficient form polynomials ``a`` and ``b``.
- """
- a, b = (a, b) if len(a) >= len(b) else (b, a)
- length_a, length_b = len(a), len(b)
- return PolynomialCoeff(
- [a[i] + (b[i] if i < length_b else BLSFieldElement(0)) for i in range(length_a)]
- )
-
-
- name: add_validator_to_registry#phase0
sources:
- file: packages/state-transition/src/block/processDeposit.ts
@@ -162,7 +128,7 @@
)
-- name: apply_light_client_update
+- name: apply_light_client_update#altair
sources: []
spec: |
@@ -185,7 +151,7 @@
store.optimistic_header = store.finalized_header
-- name: apply_pending_deposit
+- name: apply_pending_deposit#electra
sources:
- file: packages/state-transition/src/epoch/processPendingDeposits.ts
search: function applyPendingDeposit(
@@ -209,48 +175,6 @@
increase_balance(state, validator_index, deposit.amount)
-- name: bit_reversal_permutation
- sources: []
- spec: |
-
- def bit_reversal_permutation(sequence: Sequence[T]) -> Sequence[T]:
- """
- Return a copy with bit-reversed permutation. The permutation is an involution (inverts itself).
-
- The input and output are a sequence of generic type ``T`` objects.
- """
- return [sequence[reverse_bits(i, len(sequence))] for i in range(len(sequence))]
-
-
-- name: blob_to_kzg_commitment
- sources: []
- spec: |
-
- def blob_to_kzg_commitment(blob: Blob) -> KZGCommitment:
- """
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
- return g1_lincomb(bit_reversal_permutation(KZG_SETUP_G1_LAGRANGE), blob_to_polynomial(blob))
-
-
-- name: blob_to_polynomial
- sources: []
- spec: |
-
- def blob_to_polynomial(blob: Blob) -> Polynomial:
- """
- Convert a blob to list of BLS field scalars.
- """
- polynomial = Polynomial()
- for i in range(FIELD_ELEMENTS_PER_BLOB):
- value = bytes_to_bls_field(
- blob[i * BYTES_PER_FIELD_ELEMENT : (i + 1) * BYTES_PER_FIELD_ELEMENT]
- )
- polynomial[i] = value
- return polynomial
-
-
- name: block_to_light_client_header#altair
sources:
- file: packages/beacon-node/src/chain/lightClient/index.ts
@@ -379,53 +303,7 @@
)
-- name: bls_field_to_bytes
- sources: []
- spec: |
-
- def bls_field_to_bytes(x: BLSFieldElement) -> Bytes32:
- return int.to_bytes(int(x), 32, KZG_ENDIANNESS)
-
-
-- name: bytes_to_bls_field
- sources: []
- spec: |
-
- def bytes_to_bls_field(b: Bytes32) -> BLSFieldElement:
- """
- Convert untrusted bytes to a trusted and validated BLS scalar field element.
- This function does not accept inputs greater than the BLS modulus.
- """
- field_element = int.from_bytes(b, KZG_ENDIANNESS)
- assert field_element < BLS_MODULUS
- return BLSFieldElement(field_element)
-
-
-- name: bytes_to_kzg_commitment
- sources: []
- spec: |
-
- def bytes_to_kzg_commitment(b: Bytes48) -> KZGCommitment:
- """
- Convert untrusted bytes into a trusted and validated KZGCommitment.
- """
- validate_kzg_g1(b)
- return KZGCommitment(b)
-
-
-- name: bytes_to_kzg_proof
- sources: []
- spec: |
-
- def bytes_to_kzg_proof(b: Bytes48) -> KZGProof:
- """
- Convert untrusted bytes into a trusted and validated KZGProof.
- """
- validate_kzg_g1(b)
- return KZGProof(b)
-
-
-- name: bytes_to_uint64
+- name: bytes_to_uint64#phase0
sources: []
spec: |
@@ -436,7 +314,7 @@
return uint64(int.from_bytes(data, ENDIANNESS))
-- name: calculate_committee_fraction
+- name: calculate_committee_fraction#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: export function getCommitteeFraction(
@@ -447,23 +325,7 @@
return Gwei((committee_weight * committee_percent) // 100)
-- name: cell_to_coset_evals
- sources: []
- spec: |
-
- def cell_to_coset_evals(cell: Cell) -> CosetEvals:
- """
- Convert an untrusted ``Cell`` into a trusted ``CosetEvals``.
- """
- evals = CosetEvals()
- for i in range(FIELD_ELEMENTS_PER_CELL):
- start = i * BYTES_PER_FIELD_ELEMENT
- end = (i + 1) * BYTES_PER_FIELD_ELEMENT
- evals[i] = bytes_to_bls_field(cell[start:end])
- return evals
-
-
-- name: check_if_validator_active
+- name: check_if_validator_active#phase0
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function isActiveValidator(
@@ -474,7 +336,7 @@
return is_active_validator(validator, get_current_epoch(state))
-- name: compute_activation_exit_epoch
+- name: compute_activation_exit_epoch#phase0
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeActivationExitEpoch(
@@ -487,7 +349,7 @@
return Epoch(epoch + 1 + MAX_SEED_LOOKAHEAD)
-- name: compute_balance_weighted_acceptance
+- name: compute_balance_weighted_acceptance#gloas
sources: []
spec: |
@@ -506,7 +368,7 @@
return effective_balance * MAX_RANDOM_VALUE >= MAX_EFFECTIVE_BALANCE_ELECTRA * random_value
-- name: compute_balance_weighted_selection
+- name: compute_balance_weighted_selection#gloas
sources: []
spec: |
@@ -538,109 +400,7 @@
return selected
-- name: compute_blob_kzg_proof
- sources: []
- spec: |
-
- def compute_blob_kzg_proof(blob: Blob, commitment_bytes: Bytes48) -> KZGProof:
- """
- Given a blob, return the KZG proof that is used to verify it against the commitment.
- This method does not verify that the commitment is correct with respect to `blob`.
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
- assert len(commitment_bytes) == BYTES_PER_COMMITMENT
- commitment = bytes_to_kzg_commitment(commitment_bytes)
- polynomial = blob_to_polynomial(blob)
- evaluation_challenge = compute_challenge(blob, commitment)
- proof, _ = compute_kzg_proof_impl(polynomial, evaluation_challenge)
- return proof
-
-
-- name: compute_cells
- sources: []
- spec: |
-
- def compute_cells(blob: Blob) -> Vector[Cell, CELLS_PER_EXT_BLOB]:
- """
- Given a blob, extend it and return all the cells of the extended blob.
-
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
-
- polynomial = blob_to_polynomial(blob)
- polynomial_coeff = polynomial_eval_to_coeff(polynomial)
-
- cells = []
- for i in range(CELLS_PER_EXT_BLOB):
- coset = coset_for_cell(CellIndex(i))
- ys = CosetEvals([evaluate_polynomialcoeff(polynomial_coeff, z) for z in coset])
- cells.append(coset_evals_to_cell(CosetEvals(ys)))
- return cells
-
-
-- name: compute_cells_and_kzg_proofs
- sources: []
- spec: |
-
- def compute_cells_and_kzg_proofs(
- blob: Blob,
- ) -> Tuple[Vector[Cell, CELLS_PER_EXT_BLOB], Vector[KZGProof, CELLS_PER_EXT_BLOB]]:
- """
- Compute all the cell proofs for an extended blob. This is an inefficient O(n^2) algorithm,
- for performant implementation the FK20 algorithm that runs in O(n log n) should be
- used instead.
-
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
-
- polynomial = blob_to_polynomial(blob)
- polynomial_coeff = polynomial_eval_to_coeff(polynomial)
- return compute_cells_and_kzg_proofs_polynomialcoeff(polynomial_coeff)
-
-
-- name: compute_cells_and_kzg_proofs_polynomialcoeff
- sources: []
- spec: |
-
- def compute_cells_and_kzg_proofs_polynomialcoeff(
- polynomial_coeff: PolynomialCoeff,
- ) -> Tuple[Vector[Cell, CELLS_PER_EXT_BLOB], Vector[KZGProof, CELLS_PER_EXT_BLOB]]:
- """
- Helper function which computes cells/proofs for a polynomial in coefficient form.
- """
- cells, proofs = [], []
- for i in range(CELLS_PER_EXT_BLOB):
- coset = coset_for_cell(CellIndex(i))
- proof, ys = compute_kzg_proof_multi_impl(polynomial_coeff, coset)
- cells.append(coset_evals_to_cell(CosetEvals(ys)))
- proofs.append(proof)
- return cells, proofs
-
-
-- name: compute_challenge
- sources: []
- spec: |
-
- def compute_challenge(blob: Blob, commitment: KZGCommitment) -> BLSFieldElement:
- """
- Return the Fiat-Shamir challenge required by the rest of the protocol.
- """
-
- # Append the degree of the polynomial as a domain separator
- degree_poly = int.to_bytes(FIELD_ELEMENTS_PER_BLOB, 16, KZG_ENDIANNESS)
- data = FIAT_SHAMIR_PROTOCOL_DOMAIN + degree_poly
-
- data += blob
- data += commitment
-
- # Transcript has been prepared: time to create the challenge
- return hash_to_bls_field(data)
-
-
-- name: compute_columns_for_custody_group
+- name: compute_columns_for_custody_group#fulu
sources:
- file: packages/beacon-node/src/util/dataColumns.ts
search: export function computeColumnsForCustodyGroup(
@@ -654,7 +414,7 @@
]
-- name: compute_committee
+- name: compute_committee#phase0
sources:
- file: packages/state-transition/src/util/epochShuffling.ts
search: function buildCommitteesFromShuffling(
@@ -674,7 +434,7 @@
]
-- name: compute_consolidation_epoch_and_update_churn
+- name: compute_consolidation_epoch_and_update_churn#electra
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeConsolidationEpochAndUpdateChurn(
@@ -709,7 +469,7 @@
return state.earliest_consolidation_epoch
-- name: compute_domain
+- name: compute_domain#phase0
sources:
- file: packages/state-transition/src/util/domain.ts
search: export function computeDomain(
@@ -729,7 +489,7 @@
return Domain(domain_type + fork_data_root[:28])
-- name: compute_epoch_at_slot
+- name: compute_epoch_at_slot#phase0
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeEpochAtSlot(
@@ -742,7 +502,7 @@
return Epoch(slot // SLOTS_PER_EPOCH)
-- name: compute_exit_epoch_and_update_churn
+- name: compute_exit_epoch_and_update_churn#electra
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeExitEpochAndUpdateChurn(
@@ -773,7 +533,7 @@
return state.earliest_exit_epoch
-- name: compute_fork_data_root
+- name: compute_fork_data_root#phase0
sources:
- file: packages/state-transition/src/util/domain.ts
search: export function computeForkDataRoot(
@@ -992,94 +752,7 @@
return GENESIS_FORK_VERSION
-- name: compute_kzg_proof
- sources: []
- spec: |
-
- def compute_kzg_proof(blob: Blob, z_bytes: Bytes32) -> Tuple[KZGProof, Bytes32]:
- """
- Compute KZG proof at point `z` for the polynomial represented by `blob`.
- Do this by computing the quotient polynomial in evaluation form: q(x) = (p(x) - p(z)) / (x - z).
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
- assert len(z_bytes) == BYTES_PER_FIELD_ELEMENT
- polynomial = blob_to_polynomial(blob)
- proof, y = compute_kzg_proof_impl(polynomial, bytes_to_bls_field(z_bytes))
- return proof, int(y).to_bytes(BYTES_PER_FIELD_ELEMENT, KZG_ENDIANNESS)
-
-
-- name: compute_kzg_proof_impl
- sources: []
- spec: |
-
- def compute_kzg_proof_impl(
- polynomial: Polynomial, z: BLSFieldElement
- ) -> Tuple[KZGProof, BLSFieldElement]:
- """
- Helper function for `compute_kzg_proof()` and `compute_blob_kzg_proof()`.
- """
- roots_of_unity_brp = bit_reversal_permutation(compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB))
-
- # For all x_i, compute p(x_i) - p(z)
- y = evaluate_polynomial_in_evaluation_form(polynomial, z)
- polynomial_shifted = [p - y for p in polynomial]
-
- # For all x_i, compute (x_i - z)
- denominator_poly = [x - z for x in roots_of_unity_brp]
-
- # Compute the quotient polynomial directly in evaluation form
- quotient_polynomial = [BLSFieldElement(0)] * FIELD_ELEMENTS_PER_BLOB
- for i, (a, b) in enumerate(zip(polynomial_shifted, denominator_poly)):
- if b == BLSFieldElement(0):
- # The denominator is zero hence `z` is a root of unity: we must handle it as a special case
- quotient_polynomial[i] = compute_quotient_eval_within_domain(
- roots_of_unity_brp[i], polynomial, y
- )
- else:
- # Compute: q(x_i) = (p(x_i) - p(z)) / (x_i - z).
- quotient_polynomial[i] = a / b
-
- return KZGProof(
- g1_lincomb(bit_reversal_permutation(KZG_SETUP_G1_LAGRANGE), quotient_polynomial)
- ), y
-
-
-- name: compute_kzg_proof_multi_impl
- sources: []
- spec: |
-
- def compute_kzg_proof_multi_impl(
- polynomial_coeff: PolynomialCoeff, zs: Coset
- ) -> Tuple[KZGProof, CosetEvals]:
- """
- Compute a KZG multi-evaluation proof for a set of `k` points.
-
- This is done by committing to the following quotient polynomial:
- Q(X) = f(X) - I(X) / Z(X)
- Where:
- - I(X) is the degree `k-1` polynomial that agrees with f(x) at all `k` points
- - Z(X) is the degree `k` polynomial that evaluates to zero on all `k` points
-
- We further note that since the degree of I(X) is less than the degree of Z(X),
- the computation can be simplified in monomial form to Q(X) = f(X) / Z(X).
- """
-
- # For all points, compute the evaluation of those points
- ys = CosetEvals([evaluate_polynomialcoeff(polynomial_coeff, z) for z in zs])
-
- # Compute Z(X)
- denominator_poly = vanishing_polynomialcoeff(zs)
-
- # Compute the quotient polynomial directly in monomial form
- quotient_polynomial = divide_polynomialcoeff(polynomial_coeff, denominator_poly)
-
- return KZGProof(
- g1_lincomb(KZG_SETUP_G1_MONOMIAL[: len(quotient_polynomial)], quotient_polynomial)
- ), ys
-
-
-- name: compute_matrix
+- name: compute_matrix#fulu
sources:
- file: packages/beacon-node/src/util/dataColumns.ts
search: export async function getCellsAndProofs(
@@ -1107,14 +780,7 @@
return matrix
-- name: compute_merkle_proof
- sources: []
- spec: |
-
- def compute_merkle_proof(object: SSZObject, index: GeneralizedIndex) -> Sequence[Bytes32]: ...
-
-
-- name: compute_new_state_root
+- name: compute_new_state_root#phase0
sources:
- file: packages/beacon-node/src/chain/produceBlock/computeNewStateRoot.ts
search: export function computeNewStateRoot(
@@ -1127,7 +793,7 @@
return hash_tree_root(temp_state)
-- name: compute_on_chain_aggregate
+- name: compute_on_chain_aggregate#electra
sources: []
spec: |
@@ -1156,22 +822,6 @@
)
-- name: compute_powers
- sources: []
- spec: |
-
- def compute_powers(x: BLSFieldElement, n: uint64) -> Sequence[BLSFieldElement]:
- """
- Return ``x`` to power of [0, n-1], if n > 0. When n==0, an empty array is returned.
- """
- current_power = BLSFieldElement(1)
- powers = []
- for _ in range(n):
- powers.append(current_power)
- current_power = current_power * x
- return powers
-
-
- name: compute_proposer_index#phase0
sources:
- file: packages/state-transition/src/util/seed.ts
@@ -1263,7 +913,7 @@
]
-- name: compute_pulled_up_tip
+- name: compute_pulled_up_tip#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: // same logic to compute_pulled_up_tip in the spec
@@ -1286,50 +936,7 @@
update_checkpoints(store, state.current_justified_checkpoint, state.finalized_checkpoint)
-- name: compute_quotient_eval_within_domain
- sources: []
- spec: |
-
- def compute_quotient_eval_within_domain(
- z: BLSFieldElement, polynomial: Polynomial, y: BLSFieldElement
- ) -> BLSFieldElement:
- """
- Given `y == p(z)` for a polynomial `p(x)`, compute `q(z)`: the KZG quotient polynomial evaluated at `z` for the
- special case where `z` is in roots of unity.
-
- For more details, read https://dankradfeist.de/ethereum/2021/06/18/pcs-multiproofs.html section "Dividing
- when one of the points is zero". The code below computes q(x_m) for the roots of unity special case.
- """
- roots_of_unity_brp = bit_reversal_permutation(compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB))
- result = BLSFieldElement(0)
- for i, omega_i in enumerate(roots_of_unity_brp):
- if omega_i == z: # skip the evaluation point in the sum
- continue
-
- f_i = polynomial[i] - y
- numerator = f_i * omega_i
- denominator = z * (z - omega_i)
- result += numerator / denominator
-
- return result
-
-
-- name: compute_roots_of_unity
- sources: []
- spec: |
-
- def compute_roots_of_unity(order: uint64) -> Sequence[BLSFieldElement]:
- """
- Return roots of unity of ``order``.
- """
- assert (BLS_MODULUS - 1) % int(order) == 0
- root_of_unity = BLSFieldElement(
- pow(PRIMITIVE_ROOT_OF_UNITY, (BLS_MODULUS - 1) // int(order), BLS_MODULUS)
- )
- return compute_powers(root_of_unity, order)
-
-
-- name: compute_shuffled_index
+- name: compute_shuffled_index#phase0
sources:
- file: packages/state-transition/src/util/seed.ts
search: export function computeShuffledIndex(
@@ -1357,7 +964,7 @@
return index
-- name: compute_signed_block_header
+- name: compute_signed_block_header#deneb
sources:
- file: packages/state-transition/src/util/blockRoot.ts
search: export function signedBlockToSignedHeader(
@@ -1375,7 +982,7 @@
return SignedBeaconBlockHeader(message=block_header, signature=signed_block.signature)
-- name: compute_signing_root
+- name: compute_signing_root#phase0
sources:
- file: packages/state-transition/src/util/signingRoot.ts
search: export function computeSigningRoot(
@@ -1393,7 +1000,7 @@
)
-- name: compute_slots_since_epoch_start
+- name: compute_slots_since_epoch_start#phase0
sources:
- file: packages/state-transition/src/util/slot.ts
search: export function computeSlotsSinceEpochStart(
@@ -1403,7 +1010,7 @@
return slot - compute_start_slot_at_epoch(compute_epoch_at_slot(slot))
-- name: compute_start_slot_at_epoch
+- name: compute_start_slot_at_epoch#phase0
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeStartSlotAtEpoch(
@@ -1416,7 +1023,7 @@
return Slot(epoch * SLOTS_PER_EPOCH)
-- name: compute_subnet_for_attestation
+- name: compute_subnet_for_attestation#phase0
sources:
- file: packages/beacon-node/src/chain/validation/attestation.ts
search: export function computeSubnetForSlot(
@@ -1455,7 +1062,7 @@
return SubnetID(blob_index % BLOB_SIDECAR_SUBNET_COUNT_ELECTRA)
-- name: compute_subnet_for_data_column_sidecar
+- name: compute_subnet_for_data_column_sidecar#fulu
sources:
- file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts
search: export function computeSubnetForDataColumnSidecar(
@@ -1465,7 +1072,7 @@
return SubnetID(column_index % DATA_COLUMN_SIDECAR_SUBNET_COUNT)
-- name: compute_subnets_for_sync_committee
+- name: compute_subnets_for_sync_committee#altair
sources: []
spec: |
@@ -1492,7 +1099,7 @@
)
-- name: compute_subscribed_subnet
+- name: compute_subscribed_subnet#phase0
sources:
- file: packages/beacon-node/src/network/subnets/util.ts
search: export function computeSubscribedSubnetByIndex(
@@ -1512,7 +1119,7 @@
return SubnetID((permutated_prefix + index) % ATTESTATION_SUBNET_COUNT)
-- name: compute_subscribed_subnets
+- name: compute_subscribed_subnets#phase0
sources:
- file: packages/beacon-node/src/network/subnets/util.ts
search: export function computeSubscribedSubnet(
@@ -1522,7 +1129,7 @@
return [compute_subscribed_subnet(node_id, epoch, index) for index in range(SUBNETS_PER_NODE)]
-- name: compute_sync_committee_period
+- name: compute_sync_committee_period#altair
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeSyncPeriodAtEpoch(
@@ -1532,7 +1139,7 @@
return epoch // EPOCHS_PER_SYNC_COMMITTEE_PERIOD
-- name: compute_sync_committee_period_at_slot
+- name: compute_sync_committee_period_at_slot#altair
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function computeSyncPeriodAtSlot(
@@ -1542,7 +1149,7 @@
return compute_sync_committee_period(compute_epoch_at_slot(slot))
-- name: compute_time_at_slot
+- name: compute_time_at_slot#phase0
sources:
- file: packages/state-transition/src/util/slot.ts
search: export function computeTimeAtSlot(
@@ -1553,39 +1160,6 @@
return uint64(state.genesis_time + slots_since_genesis * SECONDS_PER_SLOT)
-- name: compute_verify_cell_kzg_proof_batch_challenge
- sources: []
- spec: |
-
- def compute_verify_cell_kzg_proof_batch_challenge(
- commitments: Sequence[KZGCommitment],
- commitment_indices: Sequence[CommitmentIndex],
- cell_indices: Sequence[CellIndex],
- cosets_evals: Sequence[CosetEvals],
- proofs: Sequence[KZGProof],
- ) -> BLSFieldElement:
- """
- Compute a random challenge ``r`` used in the universal verification equation. To compute the
- challenge, ``RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN`` and all data that can influence the
- verification is hashed together to deterministically generate a "random" field element via
- the Fiat-Shamir heuristic.
- """
- hashinput = RANDOM_CHALLENGE_KZG_CELL_BATCH_DOMAIN
- hashinput += int.to_bytes(FIELD_ELEMENTS_PER_BLOB, 8, KZG_ENDIANNESS)
- hashinput += int.to_bytes(FIELD_ELEMENTS_PER_CELL, 8, KZG_ENDIANNESS)
- hashinput += int.to_bytes(len(commitments), 8, KZG_ENDIANNESS)
- hashinput += int.to_bytes(len(cell_indices), 8, KZG_ENDIANNESS)
- for commitment in commitments:
- hashinput += commitment
- for k, coset_evals in enumerate(cosets_evals):
- hashinput += int.to_bytes(commitment_indices[k], 8, KZG_ENDIANNESS)
- hashinput += int.to_bytes(cell_indices[k], 8, KZG_ENDIANNESS)
- for coset_eval in coset_evals:
- hashinput += bls_field_to_bytes(coset_eval)
- hashinput += proofs[k]
- return hash_to_bls_field(hashinput)
-
-
- name: compute_weak_subjectivity_period#phase0
sources:
- file: packages/state-transition/src/util/weakSubjectivity.ts
@@ -1641,138 +1215,7 @@
return MIN_VALIDATOR_WITHDRAWABILITY_DELAY + epochs_for_validator_set_churn
-- name: construct_vanishing_polynomial
- sources: []
- spec: |
-
- def construct_vanishing_polynomial(
- missing_cell_indices: Sequence[CellIndex],
- ) -> Sequence[BLSFieldElement]:
- """
- Given the cells indices that are missing from the data, compute the polynomial that vanishes at every point that
- corresponds to a missing field element.
-
- This method assumes that all of the cells cannot be missing. In this case the vanishing polynomial
- could be computed as Z(x) = x^n - 1, where `n` is FIELD_ELEMENTS_PER_EXT_BLOB.
-
- We never encounter this case however because this method is used solely for recovery and recovery only
- works if at least half of the cells are available.
- """
- # Get the small domain
- roots_of_unity_reduced = compute_roots_of_unity(CELLS_PER_EXT_BLOB)
-
- # Compute polynomial that vanishes at all the missing cells (over the small domain)
- short_zero_poly = vanishing_polynomialcoeff(
- [
- roots_of_unity_reduced[reverse_bits(missing_cell_index, CELLS_PER_EXT_BLOB)]
- for missing_cell_index in missing_cell_indices
- ]
- )
-
- # Extend vanishing polynomial to full domain using the closed form of the vanishing polynomial over a coset
- zero_poly_coeff = [BLSFieldElement(0)] * FIELD_ELEMENTS_PER_EXT_BLOB
- for i, coeff in enumerate(short_zero_poly):
- zero_poly_coeff[i * FIELD_ELEMENTS_PER_CELL] = coeff
-
- return zero_poly_coeff
-
-
-- name: coset_evals_to_cell
- sources: []
- spec: |
-
- def coset_evals_to_cell(coset_evals: CosetEvals) -> Cell:
- """
- Convert a trusted ``CosetEval`` into an untrusted ``Cell``.
- """
- cell = []
- for i in range(FIELD_ELEMENTS_PER_CELL):
- cell += bls_field_to_bytes(coset_evals[i])
- return Cell(cell)
-
-
-- name: coset_fft_field
- sources: []
- spec: |
-
- def coset_fft_field(
- vals: Sequence[BLSFieldElement], roots_of_unity: Sequence[BLSFieldElement], inv: bool = False
- ) -> Sequence[BLSFieldElement]:
- """
- Computes an FFT/IFFT over a coset of the roots of unity.
- This is useful for when one wants to divide by a polynomial which
- vanishes on one or more elements in the domain.
- """
- vals = [v for v in vals] # copy
-
- def shift_vals(
- vals: Sequence[BLSFieldElement], factor: BLSFieldElement
- ) -> Sequence[BLSFieldElement]:
- """
- Multiply each entry in `vals` by succeeding powers of `factor`
- i.e., [vals[0] * factor^0, vals[1] * factor^1, ..., vals[n] * factor^n]
- """
- updated_vals: List[BLSFieldElement] = []
- shift = BLSFieldElement(1)
- for i in range(len(vals)):
- updated_vals.append(vals[i] * shift)
- shift = shift * factor
- return updated_vals
-
- # This is the coset generator; it is used to compute a FFT/IFFT over a coset of
- # the roots of unity.
- shift_factor = BLSFieldElement(PRIMITIVE_ROOT_OF_UNITY)
- if inv:
- vals = fft_field(vals, roots_of_unity, inv)
- return shift_vals(vals, shift_factor.inverse())
- else:
- vals = shift_vals(vals, shift_factor)
- return fft_field(vals, roots_of_unity, inv)
-
-
-- name: coset_for_cell
- sources: []
- spec: |
-
- def coset_for_cell(cell_index: CellIndex) -> Coset:
- """
- Get the coset for a given ``cell_index``.
- Precisely, consider the group of roots of unity of order FIELD_ELEMENTS_PER_CELL * CELLS_PER_EXT_BLOB.
- Let G = {1, g, g^2, ...} denote its subgroup of order FIELD_ELEMENTS_PER_CELL.
- Then, the coset is defined as h * G = {h, hg, hg^2, ...}.
- This function, returns the coset.
- """
- assert cell_index < CELLS_PER_EXT_BLOB
- roots_of_unity_brp = bit_reversal_permutation(
- compute_roots_of_unity(FIELD_ELEMENTS_PER_EXT_BLOB)
- )
- return Coset(
- roots_of_unity_brp[
- FIELD_ELEMENTS_PER_CELL * cell_index : FIELD_ELEMENTS_PER_CELL * (cell_index + 1)
- ]
- )
-
-
-- name: coset_shift_for_cell
- sources: []
- spec: |
-
- def coset_shift_for_cell(cell_index: CellIndex) -> BLSFieldElement:
- """
- Get the shift that determines the coset for a given ``cell_index``.
- Precisely, consider the group of roots of unity of order FIELD_ELEMENTS_PER_CELL * CELLS_PER_EXT_BLOB.
- Let G = {1, g, g^2, ...} denote its subgroup of order FIELD_ELEMENTS_PER_CELL.
- Then, the coset is defined as h * G = {h, hg, hg^2, ...} for an element h.
- This function returns h.
- """
- assert cell_index < CELLS_PER_EXT_BLOB
- roots_of_unity_brp = bit_reversal_permutation(
- compute_roots_of_unity(FIELD_ELEMENTS_PER_EXT_BLOB)
- )
- return roots_of_unity_brp[FIELD_ELEMENTS_PER_CELL * cell_index]
-
-
-- name: create_light_client_bootstrap
+- name: create_light_client_bootstrap#altair
sources: []
spec: |
@@ -1795,7 +1238,7 @@
)
-- name: create_light_client_finality_update
+- name: create_light_client_finality_update#altair
sources: []
spec: |
@@ -1809,7 +1252,7 @@
)
-- name: create_light_client_optimistic_update
+- name: create_light_client_optimistic_update#altair
sources: []
spec: |
@@ -1821,7 +1264,7 @@
)
-- name: create_light_client_update
+- name: create_light_client_update#altair
sources: []
spec: |
@@ -1908,7 +1351,7 @@
return CURRENT_SYNC_COMMITTEE_GINDEX
-- name: decrease_balance
+- name: decrease_balance#phase0
sources:
- file: packages/state-transition/src/util/balance.ts
search: export function decreaseBalance(
@@ -1921,30 +1364,7 @@
state.balances[index] = 0 if delta > state.balances[index] else state.balances[index] - delta
-- name: divide_polynomialcoeff
- sources: []
- spec: |
-
- def divide_polynomialcoeff(a: PolynomialCoeff, b: PolynomialCoeff) -> PolynomialCoeff:
- """
- Long polynomial division for two coefficient form polynomials ``a`` and ``b``.
- """
- a = PolynomialCoeff(a[:]) # copy
- o = PolynomialCoeff([])
- apos = len(a) - 1
- bpos = len(b) - 1
- diff = apos - bpos
- while diff >= 0:
- quot = a[apos] / b[bpos]
- o.insert(0, quot)
- for i in range(bpos, -1, -1):
- a[diff + i] = a[diff + i] - b[i] * quot
- apos -= 1
- diff -= 1
- return o
-
-
-- name: eth_aggregate_pubkeys
+- name: eth_aggregate_pubkeys#altair
sources: []
spec: |
@@ -1967,7 +1387,7 @@
return result
-- name: eth_fast_aggregate_verify
+- name: eth_fast_aggregate_verify#altair
sources: []
spec: |
@@ -1982,77 +1402,7 @@
return bls.FastAggregateVerify(pubkeys, message, signature)
-- name: evaluate_polynomial_in_evaluation_form
- sources: []
- spec: |
-
- def evaluate_polynomial_in_evaluation_form(
- polynomial: Polynomial, z: BLSFieldElement
- ) -> BLSFieldElement:
- """
- Evaluate a polynomial (in evaluation form) at an arbitrary point ``z``.
- - When ``z`` is in the domain, the evaluation can be found by indexing the polynomial at the
- position that ``z`` is in the domain.
- - When ``z`` is not in the domain, the barycentric formula is used:
- f(z) = (z**WIDTH - 1) / WIDTH * sum_(i=0)^WIDTH (f(DOMAIN[i]) * DOMAIN[i]) / (z - DOMAIN[i])
- """
- width = len(polynomial)
- assert width == FIELD_ELEMENTS_PER_BLOB
- inverse_width = BLSFieldElement(width).inverse()
-
- roots_of_unity_brp = bit_reversal_permutation(compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB))
-
- # If we are asked to evaluate within the domain, we already know the answer
- if z in roots_of_unity_brp:
- eval_index = roots_of_unity_brp.index(z)
- return polynomial[eval_index]
-
- result = BLSFieldElement(0)
- for i in range(width):
- a = polynomial[i] * roots_of_unity_brp[i]
- b = z - roots_of_unity_brp[i]
- result += a / b
- r = z.pow(BLSFieldElement(width)) - BLSFieldElement(1)
- result = result * r * inverse_width
- return result
-
-
-- name: evaluate_polynomialcoeff
- sources: []
- spec: |
-
- def evaluate_polynomialcoeff(
- polynomial_coeff: PolynomialCoeff, z: BLSFieldElement
- ) -> BLSFieldElement:
- """
- Evaluate a coefficient form polynomial at ``z`` using Horner's schema.
- """
- y = BLSFieldElement(0)
- for coef in polynomial_coeff[::-1]:
- y = y * z + coef
- return y
-
-
-- name: fft_field
- sources: []
- spec: |
-
- def fft_field(
- vals: Sequence[BLSFieldElement], roots_of_unity: Sequence[BLSFieldElement], inv: bool = False
- ) -> Sequence[BLSFieldElement]:
- if inv:
- # Inverse FFT
- invlen = BLSFieldElement(len(vals)).pow(BLSFieldElement(BLS_MODULUS - 2))
- return [
- x * invlen
- for x in _fft_field(vals, list(roots_of_unity[0:1]) + list(roots_of_unity[:0:-1]))
- ]
- else:
- # Regular FFT
- return _fft_field(vals, roots_of_unity)
-
-
-- name: filter_block_tree
+- name: filter_block_tree#phase0
sources:
- file: packages/fork-choice/src/protoArray/protoArray.ts
search: '^\s+nodeIsViableForHead\(node:'
@@ -2126,30 +1476,7 @@
return FINALIZED_ROOT_GINDEX
-- name: g1_lincomb
- sources: []
- spec: |
-
- def g1_lincomb(
- points: Sequence[KZGCommitment], scalars: Sequence[BLSFieldElement]
- ) -> KZGCommitment:
- """
- BLS multiscalar multiplication in G1. This can be naively implemented using double-and-add.
- """
- assert len(points) == len(scalars)
-
- if len(points) == 0:
- return bls.G1_to_bytes48(bls.Z1())
-
- points_g1 = []
- for point in points:
- points_g1.append(bls.bytes48_to_G1(point))
-
- result = bls.multi_exp(points_g1, scalars)
- return KZGCommitment(bls.G1_to_bytes48(result))
-
-
-- name: get_activation_exit_churn_limit
+- name: get_activation_exit_churn_limit#electra
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getActivationExitChurnLimit(
@@ -2162,7 +1489,7 @@
return min(MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT, get_balance_churn_limit(state))
-- name: get_active_validator_indices
+- name: get_active_validator_indices#phase0
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getActiveValidatorIndices(
@@ -2177,7 +1504,7 @@
]
-- name: get_aggregate_and_proof
+- name: get_aggregate_and_proof#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signAggregateAndProof(
@@ -2193,7 +1520,7 @@
)
-- name: get_aggregate_and_proof_signature
+- name: get_aggregate_and_proof_signature#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signAggregateAndProof(
@@ -2233,7 +1560,7 @@
return get_slot_component_duration_ms(AGGREGATE_DUE_BPS)
-- name: get_aggregate_signature
+- name: get_aggregate_signature#phase0
sources: []
spec: |
@@ -2280,7 +1607,7 @@
)
-- name: get_attestation_component_deltas
+- name: get_attestation_component_deltas#phase0
sources: []
spec: |
@@ -2310,7 +1637,7 @@
return rewards, penalties
-- name: get_attestation_deltas
+- name: get_attestation_deltas#phase0
sources:
- file: packages/state-transition/src/epoch/getAttestationDeltas.ts
search: export function getAttestationDeltas(
@@ -2497,7 +1824,7 @@
return participation_flag_indices
-- name: get_attestation_signature
+- name: get_attestation_signature#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signAttestation(
@@ -2511,7 +1838,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_attesting_balance
+- name: get_attesting_balance#phase0
sources: []
spec: |
@@ -2564,7 +1891,7 @@
return output
-- name: get_balance_churn_limit
+- name: get_balance_churn_limit#electra
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getBalanceChurnLimit(
@@ -2607,7 +1934,7 @@
return Gwei(increments * get_base_reward_per_increment(state))
-- name: get_base_reward_per_increment
+- name: get_base_reward_per_increment#altair
sources:
- file: packages/state-transition/src/util/syncCommittee.ts
search: export function computeBaseRewardPerIncrement(
@@ -2621,7 +1948,7 @@
)
-- name: get_beacon_committee
+- name: get_beacon_committee#phase0
sources:
- file: packages/state-transition/src/cache/epochCache.ts
search: "getBeaconCommittee(slot: Slot, index: CommitteeIndex)"
@@ -2672,7 +1999,7 @@
return state.proposer_lookahead[state.slot % SLOTS_PER_EPOCH]
-- name: get_beacon_proposer_indices
+- name: get_beacon_proposer_indices#fulu
sources: []
spec: |
@@ -2687,7 +2014,7 @@
return compute_proposer_indices(state, epoch, seed, indices)
-- name: get_blob_parameters
+- name: get_blob_parameters#fulu
sources:
- file: packages/config/src/forkConfig/index.ts
search: "getBlobParameters(epoch: Epoch): BlobParameters {"
@@ -2703,7 +2030,7 @@
return BlobParameters(ELECTRA_FORK_EPOCH, MAX_BLOBS_PER_BLOCK_ELECTRA)
-- name: get_blob_sidecars
+- name: get_blob_sidecars#deneb
sources:
- file: packages/beacon-node/src/util/blobs.ts
search: export function getBlobSidecars(
@@ -2730,7 +2057,7 @@
]
-- name: get_block_root
+- name: get_block_root#phase0
sources:
- file: packages/state-transition/src/util/blockRoot.ts
search: export function getBlockRoot(
@@ -2743,7 +2070,7 @@
return get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch))
-- name: get_block_root_at_slot
+- name: get_block_root_at_slot#phase0
sources:
- file: packages/state-transition/src/util/blockRoot.ts
search: export function getBlockRootAtSlot(
@@ -2757,7 +2084,7 @@
return state.block_roots[slot % SLOTS_PER_HISTORICAL_ROOT]
-- name: get_block_signature
+- name: get_block_signature#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signBlock(
@@ -2769,7 +2096,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_builder_payment_quorum_threshold
+- name: get_builder_payment_quorum_threshold#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function getBuilderPaymentQuorumThreshold(
@@ -2808,10 +2135,10 @@
return get_ancestor(store, root, epoch_first_slot).root
-- name: get_committee_assignment
+- name: get_committee_assignment#phase0
sources:
- file: packages/state-transition/src/cache/epochCache.ts
- search: "getCommitteeAssignment(epoch: Epoch, validatorIndex: ValidatorIndex)"
+ search: getCommitteeAssignments(
spec: |
def get_committee_assignment(
@@ -2838,7 +2165,7 @@
return None
-- name: get_committee_count_per_slot
+- name: get_committee_count_per_slot#phase0
sources:
- file: packages/state-transition/src/util/epochShuffling.ts
search: export function computeCommitteeCount(
@@ -2859,7 +2186,7 @@
)
-- name: get_committee_indices
+- name: get_committee_indices#electra
sources: []
spec: |
@@ -2867,7 +2194,7 @@
return [CommitteeIndex(index) for index, bit in enumerate(committee_bits) if bit]
-- name: get_consolidation_churn_limit
+- name: get_consolidation_churn_limit#electra
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getConsolidationChurnLimit(
@@ -2877,7 +2204,7 @@
return get_balance_churn_limit(state) - get_activation_exit_churn_limit(state)
-- name: get_contribution_and_proof
+- name: get_contribution_and_proof#altair
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signContributionAndProof(
@@ -2902,7 +2229,7 @@
)
-- name: get_contribution_and_proof_signature
+- name: get_contribution_and_proof_signature#altair
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signContributionAndProof(
@@ -2942,7 +2269,7 @@
return get_slot_component_duration_ms(CONTRIBUTION_DUE_BPS)
-- name: get_current_epoch
+- name: get_current_epoch#phase0
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function getCurrentEpoch(
@@ -2955,7 +2282,7 @@
return compute_epoch_at_slot(state.slot)
-- name: get_current_slot
+- name: get_current_slot#phase0
sources:
- file: packages/state-transition/src/util/slot.ts
search: export function getCurrentSlot(
@@ -2965,7 +2292,7 @@
return Slot(GENESIS_SLOT + get_slots_since_genesis(store))
-- name: get_current_store_epoch
+- name: get_current_store_epoch#phase0
sources: []
spec: |
@@ -2973,7 +2300,7 @@
return compute_epoch_at_slot(get_current_slot(store))
-- name: get_custody_groups
+- name: get_custody_groups#fulu
sources:
- file: packages/beacon-node/src/util/dataColumns.ts
search: export function getCustodyGroups(
@@ -3191,7 +2518,7 @@
)
-- name: get_domain
+- name: get_domain#phase0
sources:
- file: packages/config/src/genesisConfig/index.ts
search: "getDomain(domainSlot: Slot, domainType: DomainType, messageSlot?: Slot)"
@@ -3208,7 +2535,7 @@
return compute_domain(domain_type, fork_version, state.genesis_validators_root)
-- name: get_eligible_validator_indices
+- name: get_eligible_validator_indices#phase0
sources: []
spec: |
@@ -3222,7 +2549,7 @@
]
-- name: get_epoch_signature
+- name: get_epoch_signature#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signRandao(
@@ -3234,7 +2561,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_eth1_pending_deposit_count
+- name: get_eth1_pending_deposit_count#electra
sources: []
spec: |
@@ -3328,7 +2655,7 @@
)
-- name: get_execution_payload
+- name: get_execution_payload#bellatrix
sources: []
spec: |
@@ -3342,7 +2669,7 @@
return execution_engine.get_payload(payload_id).execution_payload
-- name: get_execution_payload_bid_signature
+- name: get_execution_payload_bid_signature#gloas
sources: []
spec: |
@@ -3354,7 +2681,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_execution_payload_envelope_signature
+- name: get_execution_payload_envelope_signature#gloas
sources: []
spec: |
@@ -3366,7 +2693,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_execution_requests
+- name: get_execution_requests#electra
sources: []
spec: |
@@ -3414,7 +2741,7 @@
)
-- name: get_execution_requests_list
+- name: get_execution_requests_list#electra
sources:
- file: packages/beacon-node/src/execution/engine/types.ts
search: export function serializeExecutionRequests(
@@ -3671,7 +2998,7 @@
)
-- name: get_filtered_block_tree
+- name: get_filtered_block_tree#phase0
sources: []
spec: |
@@ -3686,7 +3013,7 @@
return blocks
-- name: get_finality_delay
+- name: get_finality_delay#phase0
sources:
- file: packages/state-transition/src/util/finality.ts
search: export function getFinalityDelay(
@@ -3696,7 +3023,7 @@
return get_previous_epoch(state) - state.finalized_checkpoint.epoch
-- name: get_flag_index_deltas
+- name: get_flag_index_deltas#altair
sources:
- file: packages/state-transition/src/epoch/getRewardsAndPenalties.ts
search: // same logic to getFlagIndexDeltas
@@ -3837,7 +3164,7 @@
)
-- name: get_head_deltas
+- name: get_head_deltas#phase0
sources: []
spec: |
@@ -3935,7 +3262,7 @@
return rewards, penalties
-- name: get_inclusion_delay_deltas
+- name: get_inclusion_delay_deltas#phase0
sources: []
spec: |
@@ -3963,7 +3290,7 @@
return rewards, penalties
-- name: get_index_for_new_validator
+- name: get_index_for_new_validator#altair
sources:
- file: packages/state-transition/src/block/processDeposit.ts
search: export function addValidatorToRegistry(
@@ -3973,7 +3300,7 @@
return ValidatorIndex(len(state.validators))
-- name: get_indexed_attestation
+- name: get_indexed_attestation#phase0
sources:
- file: packages/state-transition/src/cache/epochCache.ts
search: "getIndexedAttestation(fork: ForkSeq, attestation: Attestation)"
@@ -3992,7 +3319,7 @@
)
-- name: get_indexed_payload_attestation
+- name: get_indexed_payload_attestation#gloas
sources:
- file: packages/state-transition/src/cache/epochCache.ts
search: '^\s+getIndexedPayloadAttestation\('
@@ -4121,7 +3448,7 @@
return Root()
-- name: get_matching_head_attestations
+- name: get_matching_head_attestations#phase0
sources: []
spec: |
@@ -4135,7 +3462,7 @@
]
-- name: get_matching_source_attestations
+- name: get_matching_source_attestations#phase0
sources: []
spec: |
@@ -4150,7 +3477,7 @@
)
-- name: get_matching_target_attestations
+- name: get_matching_target_attestations#phase0
sources: []
spec: |
@@ -4164,7 +3491,7 @@
]
-- name: get_max_effective_balance
+- name: get_max_effective_balance#electra
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getMaxEffectiveBalance(
@@ -4180,7 +3507,7 @@
return MIN_ACTIVATION_BALANCE
-- name: get_next_sync_committee
+- name: get_next_sync_committee#altair
sources:
- file: packages/state-transition/src/util/syncCommittee.ts
search: export function getNextSyncCommittee(
@@ -4279,7 +3606,7 @@
)
-- name: get_node_children
+- name: get_node_children#gloas
sources: []
spec: |
@@ -4302,7 +3629,7 @@
]
-- name: get_parent_payload_status
+- name: get_parent_payload_status#gloas
sources: []
spec: |
@@ -4313,7 +3640,7 @@
return PAYLOAD_STATUS_FULL if parent_block_hash == message_block_hash else PAYLOAD_STATUS_EMPTY
-- name: get_payload_attestation_due_ms
+- name: get_payload_attestation_due_ms#gloas
sources: []
spec: |
@@ -4321,7 +3648,7 @@
return get_slot_component_duration_ms(PAYLOAD_ATTESTATION_DUE_BPS)
-- name: get_payload_attestation_message_signature
+- name: get_payload_attestation_message_signature#gloas
sources: []
spec: |
@@ -4333,7 +3660,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_payload_status_tiebreaker
+- name: get_payload_status_tiebreaker#gloas
sources: []
spec: |
@@ -4391,7 +3718,7 @@
)
-- name: get_pow_block_at_terminal_total_difficulty
+- name: get_pow_block_at_terminal_total_difficulty#bellatrix
sources: []
spec: |
@@ -4413,7 +3740,7 @@
return None
-- name: get_previous_epoch
+- name: get_previous_epoch#phase0
sources:
- file: packages/state-transition/src/util/epoch.ts
search: export function getPreviousEpoch(
@@ -4427,7 +3754,7 @@
return GENESIS_EPOCH if current_epoch == GENESIS_EPOCH else Epoch(current_epoch - 1)
-- name: get_proposer_head
+- name: get_proposer_head#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "* Same as https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#get_proposer_head"
@@ -4483,7 +3810,7 @@
return head_root
-- name: get_proposer_reorg_cutoff_ms
+- name: get_proposer_reorg_cutoff_ms#phase0
sources:
- file: packages/config/src/forkConfig/index.ts
search: "getProposerReorgCutoffMs(_fork: ForkName): number {"
@@ -4493,7 +3820,7 @@
return get_slot_component_duration_ms(PROPOSER_REORG_CUTOFF_BPS)
-- name: get_proposer_reward
+- name: get_proposer_reward#phase0
sources: []
spec: |
@@ -4501,7 +3828,7 @@
return Gwei(get_base_reward(state, attesting_index) // PROPOSER_REWARD_QUOTIENT)
-- name: get_proposer_score
+- name: get_proposer_score#phase0
sources: []
spec: |
@@ -4511,7 +3838,7 @@
return (committee_weight * PROPOSER_SCORE_BOOST) // 100
-- name: get_ptc
+- name: get_ptc#gloas
sources:
- file: packages/state-transition/src/cache/epochCache.ts
search: '^\s+getPayloadTimelinessCommittee\('
@@ -4535,7 +3862,7 @@
)
-- name: get_ptc_assignment
+- name: get_ptc_assignment#gloas
sources: []
spec: |
@@ -4557,7 +3884,7 @@
return None
-- name: get_randao_mix
+- name: get_randao_mix#phase0
sources:
- file: packages/state-transition/src/util/seed.ts
search: export function getRandaoMix(
@@ -4570,7 +3897,7 @@
return state.randao_mixes[epoch % EPOCHS_PER_HISTORICAL_VECTOR]
-- name: get_safety_threshold
+- name: get_safety_threshold#altair
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function getSafetyThreshold(
@@ -4586,7 +3913,7 @@
)
-- name: get_seed
+- name: get_seed#phase0
sources:
- file: packages/state-transition/src/util/seed.ts
search: export function getSeed(
@@ -4602,7 +3929,7 @@
return hash(domain_type + uint_to_bytes(epoch) + mix)
-- name: get_slot_component_duration_ms
+- name: get_slot_component_duration_ms#phase0
sources:
- file: packages/config/src/forkConfig/index.ts
search: "getSlotComponentDurationMs(basisPoints: number): number {"
@@ -4615,7 +3942,7 @@
return basis_points * SLOT_DURATION_MS // BASIS_POINTS
-- name: get_slot_signature
+- name: get_slot_signature#phase0
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signAttestationSelectionProof(
@@ -4627,7 +3954,7 @@
return bls.Sign(privkey, signing_root)
-- name: get_slots_since_genesis
+- name: get_slots_since_genesis#phase0
sources:
- file: packages/state-transition/src/util/slot.ts
search: export function getSlotsSinceGenesis(
@@ -4637,7 +3964,7 @@
return (store.time - store.genesis_time) // SECONDS_PER_SLOT
-- name: get_source_deltas
+- name: get_source_deltas#phase0
sources: []
spec: |
@@ -4651,7 +3978,7 @@
return get_attestation_component_deltas(state, matching_source_attestations)
-- name: get_subtree_index
+- name: get_subtree_index#altair
sources: []
spec: |
@@ -4659,7 +3986,7 @@
return uint64(generalized_index % 2 ** (floorlog2(generalized_index)))
-- name: get_sync_committee_message
+- name: get_sync_committee_message#altair
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signSyncCommitteeSignature(
@@ -4681,7 +4008,7 @@
)
-- name: get_sync_committee_selection_proof
+- name: get_sync_committee_selection_proof#altair
sources:
- file: packages/validator/src/services/validatorStore.ts
search: async signSyncCommitteeSelectionProof(
@@ -4722,7 +4049,7 @@
return get_slot_component_duration_ms(SYNC_MESSAGE_DUE_BPS)
-- name: get_sync_subcommittee_pubkeys
+- name: get_sync_subcommittee_pubkeys#altair
sources: []
spec: |
@@ -4745,7 +4072,7 @@
return sync_committee.pubkeys[i : i + sync_subcommittee_size]
-- name: get_target_deltas
+- name: get_target_deltas#phase0
sources: []
spec: |
@@ -4759,7 +4086,7 @@
return get_attestation_component_deltas(state, matching_target_attestations)
-- name: get_terminal_pow_block
+- name: get_terminal_pow_block#bellatrix
sources: []
spec: |
@@ -4774,7 +4101,7 @@
return get_pow_block_at_terminal_total_difficulty(pow_chain)
-- name: get_total_active_balance
+- name: get_total_active_balance#phase0
sources: []
spec: |
@@ -4788,7 +4115,7 @@
)
-- name: get_total_balance
+- name: get_total_balance#phase0
sources:
- file: packages/state-transition/src/util/balance.ts
search: export function getTotalBalance(
@@ -4808,7 +4135,7 @@
)
-- name: get_unslashed_attesting_indices
+- name: get_unslashed_attesting_indices#phase0
sources: []
spec: |
@@ -4821,7 +4148,7 @@
return set(filter(lambda index: not state.validators[index].slashed, output))
-- name: get_unslashed_participating_indices
+- name: get_unslashed_participating_indices#altair
sources: []
spec: |
@@ -4843,7 +4170,7 @@
return set(filter(lambda index: not state.validators[index].slashed, participating_indices))
-- name: get_validator_activation_churn_limit
+- name: get_validator_activation_churn_limit#deneb
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getActivationChurnLimit(
@@ -4856,7 +4183,7 @@
return min(MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT, get_validator_churn_limit(state))
-- name: get_validator_churn_limit
+- name: get_validator_churn_limit#phase0
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function getChurnLimit(
@@ -4924,7 +4251,7 @@
return validator
-- name: get_validators_custody_requirement
+- name: get_validators_custody_requirement#fulu
sources:
- file: packages/beacon-node/src/util/dataColumns.ts
search: export function getValidatorsCustodyRequirement(
@@ -4940,7 +4267,7 @@
return min(max(count, VALIDATOR_CUSTODY_REQUIREMENT), NUMBER_OF_CUSTODY_GROUPS)
-- name: get_voting_source
+- name: get_voting_source#phase0
sources: []
spec: |
@@ -5044,7 +4371,7 @@
return Gwei(0)
-- name: has_builder_withdrawal_credential
+- name: has_builder_withdrawal_credential#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function hasBuilderWithdrawalCredential(
@@ -5085,7 +4412,7 @@
return False
-- name: has_eth1_withdrawal_credential
+- name: has_eth1_withdrawal_credential#capella
sources:
- file: packages/state-transition/src/util/capella.ts
search: export function hasEth1WithdrawalCredential(
@@ -5098,7 +4425,7 @@
return validator.withdrawal_credentials[:1] == ETH1_ADDRESS_WITHDRAWAL_PREFIX
-- name: has_execution_withdrawal_credential
+- name: has_execution_withdrawal_credential#electra
sources:
- file: packages/state-transition/src/util/electra.ts
search: export function hasExecutionWithdrawalCredential(
@@ -5114,7 +4441,7 @@
)
-- name: has_flag
+- name: has_flag#altair
sources:
- file: packages/state-transition/src/util/attesterStatus.ts
search: "/** Same to https://github.com/ethereum/eth2.0-specs/blob/v1.1.0-alpha.5/specs/altair/beacon-chain.md#has_flag */"
@@ -5128,20 +4455,7 @@
return flags & flag == flag
-- name: hash_to_bls_field
- sources: []
- spec: |
-
- def hash_to_bls_field(data: bytes) -> BLSFieldElement:
- """
- Hash ``data`` and convert the output to a BLS scalar field element.
- The output is not uniform over the BLS field.
- """
- hashed_data = hash(data)
- return BLSFieldElement(int.from_bytes(hashed_data, KZG_ENDIANNESS) % BLS_MODULUS)
-
-
-- name: increase_balance
+- name: increase_balance#phase0
sources:
- file: packages/state-transition/src/util/balance.ts
search: export function increaseBalance(
@@ -5154,7 +4468,7 @@
state.balances[index] += delta
-- name: initialize_beacon_state_from_eth1
+- name: initialize_beacon_state_from_eth1#phase0
sources:
- file: packages/state-transition/src/util/genesis.ts
search: export function initializeBeaconStateFromEth1(
@@ -5200,7 +4514,7 @@
return state
-- name: initialize_light_client_store
+- name: initialize_light_client_store#altair
sources:
- file: packages/light-client/src/spec/store.ts
search: export class LightClientStore
@@ -5230,7 +4544,7 @@
)
-- name: initialize_proposer_lookahead
+- name: initialize_proposer_lookahead#fulu
sources:
- file: packages/state-transition/src/util/fulu.ts
search: export function initializeProposerLookahead(
@@ -5300,7 +4614,7 @@
validator.withdrawable_epoch = Epoch(validator.exit_epoch + MIN_VALIDATOR_WITHDRAWABILITY_DELAY)
-- name: integer_squareroot
+- name: integer_squareroot#phase0
sources:
- file: packages/utils/src/math.ts
search: export function intSqrt(
@@ -5320,33 +4634,7 @@
return x
-- name: interpolate_polynomialcoeff
- sources: []
- spec: |
-
- def interpolate_polynomialcoeff(
- xs: Sequence[BLSFieldElement], ys: Sequence[BLSFieldElement]
- ) -> PolynomialCoeff:
- """
- Lagrange interpolation: Finds the lowest degree polynomial that takes the value ``ys[i]`` at ``x[i]`` for all i.
- Outputs a coefficient form polynomial. Leading coefficients may be zero.
- """
- assert len(xs) == len(ys)
-
- r = PolynomialCoeff([BLSFieldElement(0)])
- for i in range(len(xs)):
- summand = PolynomialCoeff([ys[i]])
- for j in range(len(ys)):
- if j != i:
- weight_adjustment = (xs[i] - xs[j]).inverse()
- summand = multiply_polynomialcoeff(
- summand, PolynomialCoeff([-weight_adjustment * xs[j], weight_adjustment])
- )
- r = add_polynomialcoeff(r, summand)
- return r
-
-
-- name: is_active_validator
+- name: is_active_validator#phase0
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function isActiveValidator(
@@ -5359,7 +4647,7 @@
return validator.activation_epoch <= epoch < validator.exit_epoch
-- name: is_aggregator
+- name: is_aggregator#phase0
sources:
- file: packages/state-transition/src/util/aggregator.ts
search: export function isAggregatorFromCommitteeLength(
@@ -5373,7 +4661,7 @@
return bytes_to_uint64(hash(slot_signature)[0:8]) % modulo == 0
-- name: is_assigned_to_sync_committee
+- name: is_assigned_to_sync_committee#altair
sources: []
spec: |
@@ -5393,7 +4681,7 @@
return pubkey in state.next_sync_committee.pubkeys
-- name: is_attestation_same_slot
+- name: is_attestation_same_slot#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function isAttestationSameSlot(
@@ -5413,7 +4701,7 @@
return blockroot == slot_blockroot and blockroot != prev_blockroot
-- name: is_better_update
+- name: is_better_update#altair
sources:
- file: packages/light-client/src/spec/isBetterUpdate.ts
search: export function isBetterUpdate(
@@ -5472,7 +4760,7 @@
return new_update.signature_slot < old_update.signature_slot
-- name: is_builder_payment_withdrawable
+- name: is_builder_payment_withdrawable#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function isBuilderPaymentWithdrawable(
@@ -5489,7 +4777,7 @@
return builder.withdrawable_epoch >= current_epoch or not builder.slashed
-- name: is_builder_withdrawal_credential
+- name: is_builder_withdrawal_credential#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function hasBuilderWithdrawalCredential(
@@ -5499,7 +4787,7 @@
return withdrawal_credentials[:1] == BUILDER_WITHDRAWAL_PREFIX
-- name: is_candidate_block
+- name: is_candidate_block#phase0
sources: []
spec: |
@@ -5510,7 +4798,7 @@
)
-- name: is_compounding_withdrawal_credential
+- name: is_compounding_withdrawal_credential#electra
sources:
- file: packages/state-transition/src/util/electra.ts
search: export function hasCompoundingWithdrawalCredential(
@@ -5558,7 +4846,7 @@
)
-- name: is_eligible_for_activation
+- name: is_eligible_for_activation#phase0
sources:
- file: packages/state-transition/src/cache/epochTransitionCache.ts
search: "// def is_eligible_for_activation(state: BeaconState, validator: Validator) -> bool:"
@@ -5609,7 +4897,7 @@
)
-- name: is_execution_block
+- name: is_execution_block#bellatrix
sources: []
spec: |
@@ -5617,7 +4905,7 @@
return block.body.execution_payload != ExecutionPayload()
-- name: is_execution_enabled
+- name: is_execution_enabled#bellatrix
sources:
- file: packages/state-transition/src/util/execution.ts
search: export function isExecutionEnabled(
@@ -5627,7 +4915,7 @@
return is_merge_transition_block(state, body) or is_merge_transition_complete(state)
-- name: is_ffg_competitive
+- name: is_ffg_competitive#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#is_ffg_competitive"
@@ -5639,7 +4927,7 @@
)
-- name: is_finality_update
+- name: is_finality_update#altair
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function isFinalityUpdate(
@@ -5649,7 +4937,7 @@
return update.finality_branch != FinalityBranch()
-- name: is_finalization_ok
+- name: is_finalization_ok#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#is_finalization_ok"
@@ -5691,7 +4979,7 @@
)
-- name: is_head_late
+- name: is_head_late#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#is_head_late"
@@ -5701,7 +4989,7 @@
return not store.block_timeliness[head_root]
-- name: is_head_weak
+- name: is_head_weak#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#is_head_weak"
@@ -5714,7 +5002,7 @@
return head_weight < reorg_threshold
-- name: is_in_inactivity_leak
+- name: is_in_inactivity_leak#phase0
sources:
- file: packages/state-transition/src/util/finality.ts
search: export function isInInactivityLeak(
@@ -5724,7 +5012,7 @@
return get_finality_delay(state) > MIN_EPOCHS_TO_INACTIVITY_PENALTY
-- name: is_merge_transition_block
+- name: is_merge_transition_block#bellatrix
sources: []
spec: |
@@ -5732,7 +5020,7 @@
return not is_merge_transition_complete(state) and body.execution_payload != ExecutionPayload()
-- name: is_merge_transition_complete
+- name: is_merge_transition_complete#bellatrix
sources:
- file: packages/state-transition/src/util/execution.ts
search: export function isMergeTransitionComplete(
@@ -5742,7 +5030,7 @@
return state.latest_execution_payload_header != ExecutionPayloadHeader()
-- name: is_next_sync_committee_known
+- name: is_next_sync_committee_known#altair
sources: []
spec: |
@@ -5750,7 +5038,7 @@
return store.next_sync_committee != SyncCommittee()
-- name: is_optimistic
+- name: is_optimistic#bellatrix
sources: []
spec: |
@@ -5758,7 +5046,7 @@
return hash_tree_root(block) in opt_store.optimistic_roots
-- name: is_optimistic_candidate_block
+- name: is_optimistic_candidate_block#bellatrix
sources: []
spec: |
@@ -5774,7 +5062,7 @@
return False
-- name: is_parent_block_full
+- name: is_parent_block_full#gloas
sources:
- file: packages/state-transition/src/util/gloas.ts
search: export function isParentBlockFull(
@@ -5784,7 +5072,7 @@
return state.latest_execution_payload_bid.block_hash == state.latest_block_hash
-- name: is_parent_node_full
+- name: is_parent_node_full#gloas
sources: []
spec: |
@@ -5792,7 +5080,7 @@
return get_parent_payload_status(store, block) == PAYLOAD_STATUS_FULL
-- name: is_parent_strong
+- name: is_parent_strong#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/fork-choice.md#is_parent_strong"
@@ -5843,7 +5131,7 @@
)
-- name: is_payload_timely
+- name: is_payload_timely#gloas
sources: []
spec: |
@@ -5863,18 +5151,7 @@
return sum(store.ptc_vote[root]) > PAYLOAD_TIMELY_THRESHOLD
-- name: is_power_of_two
- sources: []
- spec: |
-
- def is_power_of_two(value: int) -> bool:
- """
- Check if ``value`` is a power of two integer.
- """
- return (value > 0) and (value & (value - 1) == 0)
-
-
-- name: is_proposer
+- name: is_proposer#phase0
sources: []
spec: |
@@ -5882,7 +5159,7 @@
return get_beacon_proposer_index(state) == validator_index
-- name: is_proposing_on_time
+- name: is_proposing_on_time#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "* https://github.com/ethereum/consensus-specs/blob/v1.5.0/specs/phase0/fork-choice.md#is_proposing_on_time"
@@ -5896,7 +5173,7 @@
return time_into_slot_ms <= proposer_reorg_cutoff_ms
-- name: is_shuffling_stable
+- name: is_shuffling_stable#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.4/specs/phase0/fork-choice.md#is_shuffling_stable"
@@ -5906,7 +5183,7 @@
return slot % SLOTS_PER_EPOCH != 0
-- name: is_slashable_attestation_data
+- name: is_slashable_attestation_data#phase0
sources:
- file: packages/state-transition/src/util/attestation.ts
search: export function isSlashableAttestationData(
@@ -5925,7 +5202,7 @@
)
-- name: is_slashable_validator
+- name: is_slashable_validator#phase0
sources:
- file: packages/state-transition/src/util/validator.ts
search: export function isSlashableValidator(
@@ -5940,7 +5217,7 @@
)
-- name: is_supporting_vote
+- name: is_supporting_vote#gloas
sources: []
spec: |
@@ -5968,7 +5245,7 @@
)
-- name: is_sync_committee_aggregator
+- name: is_sync_committee_aggregator#altair
sources:
- file: packages/state-transition/src/util/aggregator.ts
search: export function isSyncCommitteeAggregator(
@@ -5984,7 +5261,7 @@
return bytes_to_uint64(hash(signature)[0:8]) % modulo == 0
-- name: is_sync_committee_update
+- name: is_sync_committee_update#altair
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function isSyncCommitteeUpdate(
@@ -5994,7 +5271,7 @@
return update.next_sync_committee_branch != NextSyncCommitteeBranch()
-- name: is_valid_deposit_signature
+- name: is_valid_deposit_signature#electra
sources:
- file: packages/state-transition/src/block/processDeposit.ts
search: export function isValidDepositSignature(
@@ -6014,7 +5291,7 @@
return bls.Verify(pubkey, signing_root, signature)
-- name: is_valid_genesis_state
+- name: is_valid_genesis_state#phase0
sources:
- file: packages/state-transition/src/util/genesis.ts
search: export function isValidGenesisState(
@@ -6028,7 +5305,7 @@
return True
-- name: is_valid_indexed_attestation
+- name: is_valid_indexed_attestation#phase0
sources:
- file: packages/state-transition/src/block/isValidIndexedAttestation.ts
search: export function isValidIndexedAttestation(
@@ -6051,7 +5328,7 @@
return bls.FastAggregateVerify(pubkeys, signing_root, indexed_attestation.signature)
-- name: is_valid_indexed_payload_attestation
+- name: is_valid_indexed_payload_attestation#gloas
sources:
- file: packages/state-transition/src/block/isValidIndexedPayloadAttestation.ts
search: export function isValidIndexedPayloadAttestation(
@@ -6141,7 +5418,7 @@
)
-- name: is_valid_merkle_branch
+- name: is_valid_merkle_branch#phase0
sources:
- file: packages/light-client/src/utils/verifyMerkleBranch.ts
search: export function isValidMerkleBranch(
@@ -6162,7 +5439,7 @@
return value == root
-- name: is_valid_normalized_merkle_branch
+- name: is_valid_normalized_merkle_branch#altair
sources: []
spec: |
@@ -6178,7 +5455,7 @@
return is_valid_merkle_branch(leaf, branch[num_extra:], depth, index, root)
-- name: is_valid_switch_to_compounding_request
+- name: is_valid_switch_to_compounding_request#electra
sources: []
spec: |
@@ -6217,7 +5494,7 @@
return True
-- name: is_valid_terminal_pow_block
+- name: is_valid_terminal_pow_block#bellatrix
sources: []
spec: |
@@ -6266,7 +5543,7 @@
return current_epoch <= ws_state_epoch + ws_period
-- name: kzg_commitment_to_versioned_hash
+- name: kzg_commitment_to_versioned_hash#deneb
sources:
- file: packages/beacon-node/src/util/blobs.ts
search: export function kzgCommitmentToVersionedHash(
@@ -6276,7 +5553,7 @@
return VERSIONED_HASH_VERSION_KZG + hash(kzg_commitment)[1:]
-- name: latest_verified_ancestor
+- name: latest_verified_ancestor#bellatrix
sources: []
spec: |
@@ -6288,7 +5565,7 @@
block = opt_store.blocks[block.parent_root]
-- name: max_compressed_len
+- name: max_compressed_len#phase0
sources: []
spec: |
@@ -6298,7 +5575,7 @@
return uint64(32 + n + n / 6)
-- name: max_message_size
+- name: max_message_size#phase0
sources: []
spec: |
@@ -6307,30 +5584,6 @@
return max(max_compressed_len(MAX_PAYLOAD_SIZE) + 1024, 1024 * 1024)
-- name: multi_exp
- sources: []
- spec: |
-
- def multi_exp(_points: Sequence[TPoint], _integers: Sequence[uint64]) -> Sequence[TPoint]: ...
-
-
-- name: multiply_polynomialcoeff
- sources: []
- spec: |
-
- def multiply_polynomialcoeff(a: PolynomialCoeff, b: PolynomialCoeff) -> PolynomialCoeff:
- """
- Multiplies the coefficient form polynomials ``a`` and ``b``.
- """
- assert len(a) + len(b) <= FIELD_ELEMENTS_PER_EXT_BLOB
-
- r = PolynomialCoeff([BLSFieldElement(0)])
- for power, coef in enumerate(a):
- summand = PolynomialCoeff([BLSFieldElement(0)] * power + [coef * x for x in b])
- r = add_polynomialcoeff(r, summand)
- return r
-
-
- name: next_sync_committee_gindex_at_slot#altair
sources: []
spec: |
@@ -6352,7 +5605,7 @@
return NEXT_SYNC_COMMITTEE_GINDEX
-- name: normalize_merkle_branch
+- name: normalize_merkle_branch#electra
sources:
- file: packages/light-client/src/utils/normalizeMerkleBranch.ts
search: export function normalizeMerkleBranch(
@@ -6366,7 +5619,7 @@
return [Bytes32()] * num_extra + [*branch]
-- name: notify_ptc_messages
+- name: notify_ptc_messages#gloas
sources: []
spec: |
@@ -6395,7 +5648,7 @@
)
-- name: on_attestation
+- name: on_attestation#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+onAttestation\('
@@ -6422,7 +5675,7 @@
update_latest_messages(store, indexed_attestation.attesting_indices, attestation)
-- name: on_attester_slashing
+- name: on_attester_slashing#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+onAttesterSlashing\('
@@ -6834,7 +6087,7 @@
compute_pulled_up_tip(store, block_root)
-- name: on_execution_payload
+- name: on_execution_payload#gloas
sources: []
spec: |
@@ -6860,7 +6113,7 @@
store.execution_payload_states[envelope.beacon_block_root] = state
-- name: on_payload_attestation_message
+- name: on_payload_attestation_message#gloas
sources: []
spec: |
@@ -6900,7 +6153,7 @@
ptc_vote[ptc_index] = data.payload_present
-- name: on_tick
+- name: on_tick#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+private onTick\('
@@ -6917,7 +6170,7 @@
on_tick_per_slot(store, time)
-- name: on_tick_per_slot
+- name: on_tick_per_slot#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+private onTick\('
@@ -6943,20 +6196,6 @@
)
-- name: polynomial_eval_to_coeff
- sources: []
- spec: |
-
- def polynomial_eval_to_coeff(polynomial: Polynomial) -> PolynomialCoeff:
- """
- Interpolates a polynomial (given in evaluation form) to a polynomial in coefficient form.
- """
- roots_of_unity = compute_roots_of_unity(FIELD_ELEMENTS_PER_BLOB)
- return PolynomialCoeff(
- fft_field(bit_reversal_permutation(polynomial), roots_of_unity, inv=True)
- )
-
-
- name: prepare_execution_payload#bellatrix
sources:
- file: packages/beacon-node/src/chain/produceBlock/produceBlockBody.ts
@@ -7416,7 +6655,7 @@
state.builder_pending_payments[data.slot % SLOTS_PER_EPOCH] = payment
-- name: process_attester_slashing
+- name: process_attester_slashing#phase0
sources:
- file: packages/state-transition/src/block/processAttesterSlashing.ts
search: export function processAttesterSlashing(
@@ -7543,7 +6782,7 @@
process_sync_aggregate(state, block.body.sync_aggregate)
-- name: process_block_header
+- name: process_block_header#phase0
sources:
- file: packages/state-transition/src/block/processBlockHeader.ts
search: export function processBlockHeader(
@@ -7572,7 +6811,7 @@
assert not proposer.slashed
-- name: process_bls_to_execution_change
+- name: process_bls_to_execution_change#capella
sources:
- file: packages/state-transition/src/block/processBlsToExecutionChange.ts
search: export function processBlsToExecutionChange(
@@ -7602,7 +6841,7 @@
)
-- name: process_builder_pending_payments
+- name: process_builder_pending_payments#gloas
sources:
- file: packages/state-transition/src/epoch/processBuilderPendingPayments.ts
search: export function processBuilderPendingPayments(
@@ -7626,7 +6865,7 @@
state.builder_pending_payments = old_payments + new_payments
-- name: process_consolidation_request
+- name: process_consolidation_request#electra
sources:
- file: packages/state-transition/src/block/processConsolidationRequest.ts
search: export function processConsolidationRequest(
@@ -7766,7 +7005,7 @@
)
-- name: process_deposit_request
+- name: process_deposit_request#electra
sources:
- file: packages/state-transition/src/block/processDepositRequest.ts
search: export function processDepositRequest(
@@ -7981,7 +7220,7 @@
process_proposer_lookahead(state)
-- name: process_eth1_data
+- name: process_eth1_data#phase0
sources:
- file: packages/state-transition/src/block/processEth1Data.ts
search: export function processEth1Data
@@ -7996,7 +7235,7 @@
state.eth1_data = body.eth1_data
-- name: process_eth1_data_reset
+- name: process_eth1_data_reset#phase0
sources:
- file: packages/state-transition/src/epoch/processEth1DataReset.ts
search: export function processEth1DataReset(
@@ -8371,7 +7610,7 @@
assert envelope.state_root == hash_tree_root(state)
-- name: process_execution_payload_bid
+- name: process_execution_payload_bid#gloas
sources:
- file: packages/state-transition/src/block/processExecutionPayloadBid.ts
search: export function processExecutionPayloadBid(
@@ -8439,7 +7678,7 @@
state.latest_execution_payload_bid = bid
-- name: process_historical_roots_update
+- name: process_historical_roots_update#phase0
sources:
- file: packages/state-transition/src/epoch/processHistoricalRootsUpdate.ts
search: export function processHistoricalRootsUpdate(
@@ -8455,7 +7694,7 @@
state.historical_roots.append(hash_tree_root(historical_batch))
-- name: process_historical_summaries_update
+- name: process_historical_summaries_update#capella
sources:
- file: packages/state-transition/src/epoch/processHistoricalSummariesUpdate.ts
search: export function processHistoricalSummariesUpdate(
@@ -8472,7 +7711,7 @@
state.historical_summaries.append(historical_summary)
-- name: process_inactivity_updates
+- name: process_inactivity_updates#altair
sources:
- file: packages/state-transition/src/epoch/processInactivityUpdates.ts
search: export function processInactivityUpdates(
@@ -8544,7 +7783,7 @@
)
-- name: process_light_client_finality_update
+- name: process_light_client_finality_update#altair
sources: []
spec: |
@@ -8566,7 +7805,7 @@
process_light_client_update(store, update, current_slot, genesis_validators_root)
-- name: process_light_client_optimistic_update
+- name: process_light_client_optimistic_update#altair
sources: []
spec: |
@@ -8588,7 +7827,7 @@
process_light_client_update(store, update, current_slot, genesis_validators_root)
-- name: process_light_client_store_force_update
+- name: process_light_client_store_force_update#altair
sources: []
spec: |
@@ -8610,7 +7849,7 @@
store.best_valid_update = None
-- name: process_light_client_update
+- name: process_light_client_update#altair
sources:
- file: packages/light-client/src/spec/processLightClientUpdate.ts
search: export function processLightClientUpdate(
@@ -8787,7 +8026,7 @@
for_ops(body.payload_attestations, process_payload_attestation)
-- name: process_participation_flag_updates
+- name: process_participation_flag_updates#altair
sources:
- file: packages/state-transition/src/epoch/processParticipationFlagUpdates.ts
search: export function processParticipationFlagUpdates(
@@ -8800,7 +8039,7 @@
]
-- name: process_participation_record_updates
+- name: process_participation_record_updates#phase0
sources:
- file: packages/state-transition/src/epoch/processParticipationRecordUpdates.ts
search: export function processParticipationRecordUpdates(
@@ -8812,7 +8051,7 @@
state.current_epoch_attestations = []
-- name: process_payload_attestation
+- name: process_payload_attestation#gloas
sources:
- file: packages/state-transition/src/block/processPayloadAttestation.ts
search: export function processPayloadAttestation(
@@ -8834,7 +8073,7 @@
assert is_valid_indexed_payload_attestation(state, indexed_payload_attestation)
-- name: process_pending_consolidations
+- name: process_pending_consolidations#electra
sources:
- file: packages/state-transition/src/epoch/processPendingConsolidations.ts
search: export function processPendingConsolidations(
@@ -8864,7 +8103,7 @@
state.pending_consolidations = state.pending_consolidations[next_pending_consolidation:]
-- name: process_pending_deposits
+- name: process_pending_deposits#electra
sources:
- file: packages/state-transition/src/epoch/processPendingDeposits.ts
search: export function processPendingDeposits(
@@ -8937,7 +8176,7 @@
state.deposit_balance_to_consume = Gwei(0)
-- name: process_proposer_lookahead
+- name: process_proposer_lookahead#fulu
sources:
- file: packages/state-transition/src/epoch/processProposerLookahead.ts
search: export function processProposerLookahead(
@@ -9024,7 +8263,7 @@
slash_validator(state, header_1.proposer_index)
-- name: process_randao
+- name: process_randao#phase0
sources:
- file: packages/state-transition/src/block/processRandao.ts
search: export function processRandao(
@@ -9041,7 +8280,7 @@
state.randao_mixes[epoch % EPOCHS_PER_HISTORICAL_VECTOR] = mix
-- name: process_randao_mixes_reset
+- name: process_randao_mixes_reset#phase0
sources:
- file: packages/state-transition/src/epoch/processRandaoMixesReset.ts
search: export function processRandaoMixesReset(
@@ -9296,7 +8535,7 @@
decrease_balance(state, ValidatorIndex(index), penalty)
-- name: process_slashings_reset
+- name: process_slashings_reset#phase0
sources:
- file: packages/state-transition/src/epoch/processSlashingsReset.ts
search: export function processSlashingsReset(
@@ -9345,7 +8584,7 @@
state.execution_payload_availability[(state.slot + 1) % SLOTS_PER_HISTORICAL_ROOT] = 0b0
-- name: process_slots
+- name: process_slots#phase0
sources:
- file: packages/state-transition/src/stateTransition.ts
search: export function processSlots(
@@ -9361,7 +8600,7 @@
state.slot = Slot(state.slot + 1)
-- name: process_sync_aggregate
+- name: process_sync_aggregate#altair
sources:
- file: packages/state-transition/src/block/processSyncCommittee.ts
search: export function processSyncAggregate(
@@ -9430,7 +8669,7 @@
decrease_balance(state, participant_index, participant_reward)
-- name: process_sync_committee_contributions
+- name: process_sync_committee_contributions#altair
sources:
- file: packages/beacon-node/src/chain/opPools/syncContributionAndProofPool.ts
search: "* This is for producing blocks, the same to process_sync_committee_contributions in the spec."
@@ -9456,7 +8695,7 @@
block.body.sync_aggregate = sync_aggregate
-- name: process_sync_committee_updates
+- name: process_sync_committee_updates#altair
sources:
- file: packages/state-transition/src/epoch/processSyncCommitteeUpdates.ts
search: export function processSyncCommitteeUpdates(
@@ -9552,7 +8791,7 @@
initiate_validator_exit(state, voluntary_exit.validator_index)
-- name: process_withdrawal_request
+- name: process_withdrawal_request#electra
sources:
- file: packages/state-transition/src/block/processWithdrawalRequest.ts
search: export function processWithdrawalRequest(
@@ -9755,7 +8994,7 @@
state.next_withdrawal_validator_index = next_validator_index
-- name: queue_excess_active_balance
+- name: queue_excess_active_balance#electra
sources:
- file: packages/state-transition/src/util/electra.ts
search: export function queueExcessActiveBalance(
@@ -9780,50 +9019,7 @@
)
-- name: recover_cells_and_kzg_proofs
- sources: []
- spec: |
-
- def recover_cells_and_kzg_proofs(
- cell_indices: Sequence[CellIndex], cells: Sequence[Cell]
- ) -> Tuple[Vector[Cell, CELLS_PER_EXT_BLOB], Vector[KZGProof, CELLS_PER_EXT_BLOB]]:
- """
- Given at least 50% of cells for a blob, recover all the cells/proofs.
- This algorithm uses FFTs to recover cells faster than using Lagrange
- implementation, as can be seen here:
- https://ethresear.ch/t/reed-solomon-erasure-code-recovery-in-n-log-2-n-time-with-ffts/3039
-
- A faster version thanks to Qi Zhou can be found here:
- https://github.com/ethereum/research/blob/51b530a53bd4147d123ab3e390a9d08605c2cdb8/polynomial_reconstruction/polynomial_reconstruction_danksharding.py
-
- Public method.
- """
- # Check we have the same number of cells and indices
- assert len(cell_indices) == len(cells)
- # Check we have enough cells to be able to perform the reconstruction
- assert CELLS_PER_EXT_BLOB // 2 <= len(cell_indices) <= CELLS_PER_EXT_BLOB
- # Check for duplicates
- assert len(cell_indices) == len(set(cell_indices))
- # Check that indices are in ascending order
- assert cell_indices == sorted(cell_indices)
- # Check that the cell indices are within bounds
- for cell_index in cell_indices:
- assert cell_index < CELLS_PER_EXT_BLOB
- # Check that each cell is the correct length
- for cell in cells:
- assert len(cell) == BYTES_PER_CELL
-
- # Convert cells to coset evaluations
- cosets_evals = [cell_to_coset_evals(cell) for cell in cells]
-
- # Given the coset evaluations, recover the polynomial in coefficient form
- polynomial_coeff = recover_polynomialcoeff(cell_indices, cosets_evals)
-
- # Recompute all cells/proofs
- return compute_cells_and_kzg_proofs_polynomialcoeff(polynomial_coeff)
-
-
-- name: recover_matrix
+- name: recover_matrix#fulu
sources:
- file: packages/beacon-node/src/util/blobs.ts
search: export async function dataColumnMatrixRecovery(
@@ -9855,93 +9051,7 @@
return matrix
-- name: recover_polynomialcoeff
- sources: []
- spec: |
-
- def recover_polynomialcoeff(
- cell_indices: Sequence[CellIndex], cosets_evals: Sequence[CosetEvals]
- ) -> PolynomialCoeff:
- """
- Recover the polynomial in coefficient form that when evaluated at the roots of unity will give the extended blob.
- """
- # Get the extended domain. This will be referred to as the FFT domain.
- roots_of_unity_extended = compute_roots_of_unity(FIELD_ELEMENTS_PER_EXT_BLOB)
-
- # Flatten the cosets evaluations.
- # If a cell is missing, then its evaluation is zero.
- # We let E(x) be a polynomial of degree FIELD_ELEMENTS_PER_EXT_BLOB - 1
- # that interpolates the evaluations including the zeros for missing ones.
- extended_evaluation_rbo = [BLSFieldElement(0)] * FIELD_ELEMENTS_PER_EXT_BLOB
- for cell_index, cell in zip(cell_indices, cosets_evals):
- start = cell_index * FIELD_ELEMENTS_PER_CELL
- end = (cell_index + 1) * FIELD_ELEMENTS_PER_CELL
- extended_evaluation_rbo[start:end] = cell
- extended_evaluation = bit_reversal_permutation(extended_evaluation_rbo)
-
- # Compute the vanishing polynomial Z(x) in coefficient form.
- # Z(x) is the polynomial which vanishes on all of the evaluations which are missing.
- missing_cell_indices = [
- CellIndex(cell_index)
- for cell_index in range(CELLS_PER_EXT_BLOB)
- if cell_index not in cell_indices
- ]
- zero_poly_coeff = construct_vanishing_polynomial(missing_cell_indices)
-
- # Convert Z(x) to evaluation form over the FFT domain
- zero_poly_eval = fft_field(zero_poly_coeff, roots_of_unity_extended)
-
- # Compute (E*Z)(x) = E(x) * Z(x) in evaluation form over the FFT domain
- # Note: over the FFT domain, the polynomials (E*Z)(x) and (P*Z)(x) agree, where
- # P(x) is the polynomial we want to reconstruct (degree FIELD_ELEMENTS_PER_BLOB - 1).
- extended_evaluation_times_zero = [a * b for a, b in zip(zero_poly_eval, extended_evaluation)]
-
- # We know that (E*Z)(x) and (P*Z)(x) agree over the FFT domain,
- # and we know that (P*Z)(x) has degree at most FIELD_ELEMENTS_PER_EXT_BLOB - 1.
- # Thus, an inverse FFT of the evaluations of (E*Z)(x) (= evaluations of (P*Z)(x))
- # yields the coefficient form of (P*Z)(x).
- extended_evaluation_times_zero_coeffs = fft_field(
- extended_evaluation_times_zero, roots_of_unity_extended, inv=True
- )
-
- # Next step is to divide the polynomial (P*Z)(x) by polynomial Z(x) to get P(x).
- # We do this in evaluation form over a coset of the FFT domain to avoid division by 0.
-
- # Convert (P*Z)(x) to evaluation form over a coset of the FFT domain
- extended_evaluations_over_coset = coset_fft_field(
- extended_evaluation_times_zero_coeffs, roots_of_unity_extended
- )
-
- # Convert Z(x) to evaluation form over a coset of the FFT domain
- zero_poly_over_coset = coset_fft_field(zero_poly_coeff, roots_of_unity_extended)
-
- # Compute P(x) = (P*Z)(x) / Z(x) in evaluation form over a coset of the FFT domain
- reconstructed_poly_over_coset = [
- a / b for a, b in zip(extended_evaluations_over_coset, zero_poly_over_coset)
- ]
-
- # Convert P(x) to coefficient form
- reconstructed_poly_coeff = coset_fft_field(
- reconstructed_poly_over_coset, roots_of_unity_extended, inv=True
- )
-
- return PolynomialCoeff(reconstructed_poly_coeff[:FIELD_ELEMENTS_PER_BLOB])
-
-
-- name: reverse_bits
- sources: []
- spec: |
-
- def reverse_bits(n: int, order: int) -> int:
- """
- Reverse the bit order of an integer ``n``.
- """
- assert is_power_of_two(order)
- # Convert n to binary with the same number of bits as "order" - 1, then reverse its bit order
- return int(("{:0" + str(order.bit_length() - 1) + "b}").format(n)[::-1], 2)
-
-
-- name: saturating_sub
+- name: saturating_sub#phase0
sources: []
spec: |
@@ -9952,7 +9062,7 @@
return a - b if a > b else 0
-- name: seconds_to_milliseconds
+- name: seconds_to_milliseconds#phase0
sources: []
spec: |
@@ -9966,7 +9076,7 @@
return seconds * 1000
-- name: set_or_append_list
+- name: set_or_append_list#altair
sources: []
spec: |
@@ -9977,7 +9087,7 @@
list[index] = value
-- name: should_extend_payload
+- name: should_extend_payload#gloas
sources: []
spec: |
@@ -9991,7 +9101,7 @@
)
-- name: should_override_forkchoice_update
+- name: should_override_forkchoice_update#bellatrix
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: "// See https://github.com/ethereum/consensus-specs/blob/v1.5.0/specs/bellatrix/fork-choice.md#should_override_forkchoice_update"
@@ -10195,7 +9305,7 @@
increase_balance(state, whistleblower_index, Gwei(whistleblower_reward - proposer_reward))
-- name: state_transition
+- name: state_transition#phase0
sources:
- file: packages/state-transition/src/stateTransition.ts
search: export function stateTransition(
@@ -10217,7 +9327,7 @@
assert block.state_root == hash_tree_root(state)
-- name: store_target_checkpoint_state
+- name: store_target_checkpoint_state#phase0
sources: []
spec: |
@@ -10230,7 +9340,7 @@
store.checkpoint_states[target] = base_state
-- name: switch_to_compounding_validator
+- name: switch_to_compounding_validator#electra
sources:
- file: packages/state-transition/src/util/electra.ts
search: export function switchToCompoundingValidator(
@@ -10244,7 +9354,7 @@
queue_excess_active_balance(state, index)
-- name: translate_participation
+- name: translate_participation#altair
sources:
- file: packages/state-transition/src/slot/upgradeStateToAltair.ts
search: function translateParticipation(
@@ -10268,7 +9378,7 @@
epoch_participation[index] = add_flag(epoch_participation[index], flag_index)
-- name: update_checkpoints
+- name: update_checkpoints#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+private updateCheckpoints\('
@@ -10329,7 +9439,7 @@
)
-- name: update_unrealized_checkpoints
+- name: update_unrealized_checkpoints#phase0
sources:
- file: packages/fork-choice/src/forkChoice/forkChoice.ts
search: '^\s+private updateUnrealizedCheckpoints\('
@@ -10353,7 +9463,7 @@
store.unrealized_finalized_checkpoint = unrealized_finalized_checkpoint
-- name: upgrade_lc_bootstrap_to_capella
+- name: upgrade_lc_bootstrap_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10367,7 +9477,7 @@
)
-- name: upgrade_lc_bootstrap_to_deneb
+- name: upgrade_lc_bootstrap_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10381,7 +9491,7 @@
)
-- name: upgrade_lc_bootstrap_to_electra
+- name: upgrade_lc_bootstrap_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10397,7 +9507,7 @@
)
-- name: upgrade_lc_finality_update_to_capella
+- name: upgrade_lc_finality_update_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientFinalityUpdate(
@@ -10415,7 +9525,7 @@
)
-- name: upgrade_lc_finality_update_to_deneb
+- name: upgrade_lc_finality_update_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientFinalityUpdate(
@@ -10433,7 +9543,7 @@
)
-- name: upgrade_lc_finality_update_to_electra
+- name: upgrade_lc_finality_update_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientFinalityUpdate(
@@ -10451,7 +9561,7 @@
)
-- name: upgrade_lc_header_to_capella
+- name: upgrade_lc_header_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10465,7 +9575,7 @@
)
-- name: upgrade_lc_header_to_deneb
+- name: upgrade_lc_header_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10499,7 +9609,7 @@
)
-- name: upgrade_lc_header_to_electra
+- name: upgrade_lc_header_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientHeader(
@@ -10513,7 +9623,7 @@
)
-- name: upgrade_lc_optimistic_update_to_capella
+- name: upgrade_lc_optimistic_update_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientOptimisticUpdate(
@@ -10529,7 +9639,7 @@
)
-- name: upgrade_lc_optimistic_update_to_deneb
+- name: upgrade_lc_optimistic_update_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientOptimisticUpdate(
@@ -10545,7 +9655,7 @@
)
-- name: upgrade_lc_optimistic_update_to_electra
+- name: upgrade_lc_optimistic_update_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientOptimisticUpdate(
@@ -10561,7 +9671,7 @@
)
-- name: upgrade_lc_store_to_capella
+- name: upgrade_lc_store_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientStore(
@@ -10583,7 +9693,7 @@
)
-- name: upgrade_lc_store_to_deneb
+- name: upgrade_lc_store_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientStore(
@@ -10605,7 +9715,7 @@
)
-- name: upgrade_lc_store_to_electra
+- name: upgrade_lc_store_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientStore(
@@ -10627,7 +9737,7 @@
)
-- name: upgrade_lc_update_to_capella
+- name: upgrade_lc_update_to_capella#capella
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientUpdate(
@@ -10645,7 +9755,7 @@
)
-- name: upgrade_lc_update_to_deneb
+- name: upgrade_lc_update_to_deneb#deneb
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientUpdate(
@@ -10663,7 +9773,7 @@
)
-- name: upgrade_lc_update_to_electra
+- name: upgrade_lc_update_to_electra#electra
sources:
- file: packages/light-client/src/spec/utils.ts
search: export function upgradeLightClientUpdate(
@@ -10683,7 +9793,7 @@
)
-- name: upgrade_to_altair
+- name: upgrade_to_altair#altair
sources:
- file: packages/state-transition/src/slot/upgradeStateToAltair.ts
search: export function upgradeStateToAltair(
@@ -10733,7 +9843,7 @@
return post
-- name: upgrade_to_bellatrix
+- name: upgrade_to_bellatrix#bellatrix
sources:
- file: packages/state-transition/src/slot/upgradeStateToBellatrix.ts
search: export function upgradeStateToBellatrix(
@@ -10778,7 +9888,7 @@
return post
-- name: upgrade_to_capella
+- name: upgrade_to_capella#capella
sources:
- file: packages/state-transition/src/slot/upgradeStateToCapella.ts
search: export function upgradeStateToCapella(
@@ -10845,7 +9955,7 @@
return post
-- name: upgrade_to_deneb
+- name: upgrade_to_deneb#deneb
sources:
- file: packages/state-transition/src/slot/upgradeStateToDeneb.ts
search: export function upgradeStateToDeneb(
@@ -10914,7 +10024,7 @@
return post
-- name: upgrade_to_electra
+- name: upgrade_to_electra#electra
sources:
- file: packages/state-transition/src/slot/upgradeStateToElectra.ts
search: export function upgradeStateToElectra(
@@ -11024,7 +10134,7 @@
return post
-- name: upgrade_to_fulu
+- name: upgrade_to_fulu#fulu
sources:
- file: packages/state-transition/src/slot/upgradeStateToFulu.ts
search: export function upgradeStateToFulu(
@@ -11082,7 +10192,7 @@
return post
-- name: upgrade_to_gloas
+- name: upgrade_to_gloas#gloas
sources:
- file: packages/state-transition/src/slot/upgradeStateToGloas.ts
search: export function upgradeStateToGloas(
@@ -11155,21 +10265,7 @@
return post
-- name: validate_kzg_g1
- sources: []
- spec: |
-
- def validate_kzg_g1(b: Bytes48) -> None:
- """
- Perform BLS validation required by the types `KZGProof` and `KZGCommitment`.
- """
- if b == G1_POINT_AT_INFINITY:
- return
-
- assert bls.KeyValidate(b)
-
-
-- name: validate_light_client_update
+- name: validate_light_client_update#altair
sources:
- file: packages/light-client/src/spec/validateLightClientUpdate.ts
search: export function validateLightClientUpdate(
@@ -11393,7 +10489,7 @@
assert get_current_slot(store) >= attestation.data.slot + 1
-- name: validate_target_epoch_against_current_time
+- name: validate_target_epoch_against_current_time#phase0
sources: []
spec: |
@@ -11408,79 +10504,7 @@
assert target.epoch in [current_epoch, previous_epoch]
-- name: vanishing_polynomialcoeff
- sources: []
- spec: |
-
- def vanishing_polynomialcoeff(xs: Sequence[BLSFieldElement]) -> PolynomialCoeff:
- """
- Compute the vanishing polynomial on ``xs`` (in coefficient form).
- """
- p = PolynomialCoeff([BLSFieldElement(1)])
- for x in xs:
- p = multiply_polynomialcoeff(p, PolynomialCoeff([-x, BLSFieldElement(1)]))
- return p
-
-
-- name: verify_blob_kzg_proof
- sources: []
- spec: |
-
- def verify_blob_kzg_proof(blob: Blob, commitment_bytes: Bytes48, proof_bytes: Bytes48) -> bool:
- """
- Given a blob and a KZG proof, verify that the blob data corresponds to the provided commitment.
-
- Public method.
- """
- assert len(blob) == BYTES_PER_BLOB
- assert len(commitment_bytes) == BYTES_PER_COMMITMENT
- assert len(proof_bytes) == BYTES_PER_PROOF
-
- commitment = bytes_to_kzg_commitment(commitment_bytes)
-
- polynomial = blob_to_polynomial(blob)
- evaluation_challenge = compute_challenge(blob, commitment)
-
- # Evaluate polynomial at `evaluation_challenge`
- y = evaluate_polynomial_in_evaluation_form(polynomial, evaluation_challenge)
-
- # Verify proof
- proof = bytes_to_kzg_proof(proof_bytes)
- return verify_kzg_proof_impl(commitment, evaluation_challenge, y, proof)
-
-
-- name: verify_blob_kzg_proof_batch
- sources: []
- spec: |
-
- def verify_blob_kzg_proof_batch(
- blobs: Sequence[Blob], commitments_bytes: Sequence[Bytes48], proofs_bytes: Sequence[Bytes48]
- ) -> bool:
- """
- Given a list of blobs and blob KZG proofs, verify that they correspond to the provided commitments.
- Will return True if there are zero blobs/commitments/proofs.
- Public method.
- """
-
- assert len(blobs) == len(commitments_bytes) == len(proofs_bytes)
-
- commitments, evaluation_challenges, ys, proofs = [], [], [], []
- for blob, commitment_bytes, proof_bytes in zip(blobs, commitments_bytes, proofs_bytes):
- assert len(blob) == BYTES_PER_BLOB
- assert len(commitment_bytes) == BYTES_PER_COMMITMENT
- assert len(proof_bytes) == BYTES_PER_PROOF
- commitment = bytes_to_kzg_commitment(commitment_bytes)
- commitments.append(commitment)
- polynomial = blob_to_polynomial(blob)
- evaluation_challenge = compute_challenge(blob, commitment)
- evaluation_challenges.append(evaluation_challenge)
- ys.append(evaluate_polynomial_in_evaluation_form(polynomial, evaluation_challenge))
- proofs.append(bytes_to_kzg_proof(proof_bytes))
-
- return verify_kzg_proof_batch(commitments, evaluation_challenges, ys, proofs)
-
-
-- name: verify_blob_sidecar_inclusion_proof
+- name: verify_blob_sidecar_inclusion_proof#deneb
sources:
- file: packages/beacon-node/src/chain/validation/blobSidecar.ts
search: export function validateBlobSidecarInclusionProof(
@@ -11499,7 +10523,7 @@
)
-- name: verify_block_signature
+- name: verify_block_signature#phase0
sources:
- file: packages/state-transition/src/signatureSets/proposer.ts
search: export function verifyProposerSignature(
@@ -11513,170 +10537,6 @@
return bls.Verify(proposer.pubkey, signing_root, signed_block.signature)
-- name: verify_cell_kzg_proof_batch
- sources: []
- spec: |
-
- def verify_cell_kzg_proof_batch(
- commitments_bytes: Sequence[Bytes48],
- cell_indices: Sequence[CellIndex],
- cells: Sequence[Cell],
- proofs_bytes: Sequence[Bytes48],
- ) -> bool:
- """
- Verify that a set of cells belong to their corresponding commitments.
-
- Given four lists representing tuples of (``commitment``, ``cell_index``, ``cell``, ``proof``),
- the function verifies ``proof`` which shows that ``cell`` are the evaluations of the polynomial
- associated with ``commitment``, evaluated over the domain specified by ``cell_index``.
-
- This function implements the universal verification equation that has been introduced here:
- https://ethresear.ch/t/a-universal-verification-equation-for-data-availability-sampling/13240
-
- Public method.
- """
-
- assert len(commitments_bytes) == len(cells) == len(proofs_bytes) == len(cell_indices)
- for commitment_bytes in commitments_bytes:
- assert len(commitment_bytes) == BYTES_PER_COMMITMENT
- for cell_index in cell_indices:
- assert cell_index < CELLS_PER_EXT_BLOB
- for cell in cells:
- assert len(cell) == BYTES_PER_CELL
- for proof_bytes in proofs_bytes:
- assert len(proof_bytes) == BYTES_PER_PROOF
-
- # Create the list of deduplicated commitments we are dealing with
- deduplicated_commitments = [
- bytes_to_kzg_commitment(commitment_bytes)
- for index, commitment_bytes in enumerate(commitments_bytes)
- if commitments_bytes.index(commitment_bytes) == index
- ]
- # Create indices list mapping initial commitments (that may contain duplicates) to the deduplicated commitments
- commitment_indices = [
- CommitmentIndex(deduplicated_commitments.index(commitment_bytes))
- for commitment_bytes in commitments_bytes
- ]
-
- cosets_evals = [cell_to_coset_evals(cell) for cell in cells]
- proofs = [bytes_to_kzg_proof(proof_bytes) for proof_bytes in proofs_bytes]
-
- # Do the actual verification
- return verify_cell_kzg_proof_batch_impl(
- deduplicated_commitments, commitment_indices, cell_indices, cosets_evals, proofs
- )
-
-
-- name: verify_cell_kzg_proof_batch_impl
- sources: []
- spec: |
-
- def verify_cell_kzg_proof_batch_impl(
- commitments: Sequence[KZGCommitment],
- commitment_indices: Sequence[CommitmentIndex],
- cell_indices: Sequence[CellIndex],
- cosets_evals: Sequence[CosetEvals],
- proofs: Sequence[KZGProof],
- ) -> bool:
- """
- Helper: Verify that a set of cells belong to their corresponding commitment.
-
- Given a list of ``commitments`` (which contains no duplicates) and four lists representing
- tuples of (``commitment_index``, ``cell_index``, ``evals``, ``proof``), the function
- verifies ``proof`` which shows that ``evals`` are the evaluations of the polynomial associated
- with ``commitments[commitment_index]``, evaluated over the domain specified by ``cell_index``.
-
- This function is the internal implementation of ``verify_cell_kzg_proof_batch``.
- """
- assert len(commitment_indices) == len(cell_indices) == len(cosets_evals) == len(proofs)
- assert len(commitments) == len(set(commitments))
- for commitment_index in commitment_indices:
- assert commitment_index < len(commitments)
-
- # The verification equation that we will check is pairing (LL, LR) = pairing (RL, [1]), where
- # LL = sum_k r^k proofs[k],
- # LR = [s^n]
- # RL = RLC - RLI + RLP, where
- # RLC = sum_i weights[i] commitments[i]
- # RLI = [sum_k r^k interpolation_poly_k(s)]
- # RLP = sum_k (r^k * h_k^n) proofs[k]
- #
- # Here, the variables have the following meaning:
- # - k < len(cell_indices) is an index iterating over all cells in the input
- # - r is a random coefficient, derived from hashing all data provided by the prover
- # - s is the secret embedded in the KZG setup
- # - n = FIELD_ELEMENTS_PER_CELL is the size of the evaluation domain
- # - i ranges over all provided commitments
- # - weights[i] is a weight computed for commitment i
- # - It depends on r and on which cells are associated with commitment i
- # - interpolation_poly_k is the interpolation polynomial for the kth cell
- # - h_k is the coset shift specifying the evaluation domain of the kth cell
-
- # Preparation
- num_cells = len(cell_indices)
- n = FIELD_ELEMENTS_PER_CELL
- num_commitments = len(commitments)
-
- # Step 1: Compute a challenge r and its powers r^0, ..., r^{num_cells-1}
- r = compute_verify_cell_kzg_proof_batch_challenge(
- commitments, commitment_indices, cell_indices, cosets_evals, proofs
- )
- r_powers = compute_powers(r, num_cells)
-
- # Step 2: Compute LL = sum_k r^k proofs[k]
- ll = bls.bytes48_to_G1(g1_lincomb(proofs, r_powers))
-
- # Step 3: Compute LR = [s^n]
- lr = bls.bytes96_to_G2(KZG_SETUP_G2_MONOMIAL[n])
-
- # Step 4: Compute RL = RLC - RLI + RLP
- # Step 4.1: Compute RLC = sum_i weights[i] commitments[i]
- # Step 4.1a: Compute weights[i]: the sum of all r^k for which cell k is associated with commitment i.
- # Note: we do that by iterating over all k and updating the correct weights[i] accordingly
- weights = [BLSFieldElement(0)] * num_commitments
- for k in range(num_cells):
- i = commitment_indices[k]
- weights[i] += r_powers[k]
- # Step 4.1b: Linearly combine the weights with the commitments to get RLC
- rlc = bls.bytes48_to_G1(g1_lincomb(commitments, weights))
-
- # Step 4.2: Compute RLI = [sum_k r^k interpolation_poly_k(s)]
- # Note: an efficient implementation would use the IDFT based method explained in the blog post
- sum_interp_polys_coeff = PolynomialCoeff([BLSFieldElement(0)] * n)
- for k in range(num_cells):
- interp_poly_coeff = interpolate_polynomialcoeff(
- coset_for_cell(cell_indices[k]), cosets_evals[k]
- )
- interp_poly_scaled_coeff = multiply_polynomialcoeff(
- PolynomialCoeff([r_powers[k]]), interp_poly_coeff
- )
- sum_interp_polys_coeff = add_polynomialcoeff(
- sum_interp_polys_coeff, interp_poly_scaled_coeff
- )
- rli = bls.bytes48_to_G1(g1_lincomb(KZG_SETUP_G1_MONOMIAL[:n], sum_interp_polys_coeff))
-
- # Step 4.3: Compute RLP = sum_k (r^k * h_k^n) proofs[k]
- weighted_r_powers = []
- for k in range(num_cells):
- h_k = coset_shift_for_cell(cell_indices[k])
- h_k_pow = h_k.pow(BLSFieldElement(n))
- wrp = r_powers[k] * h_k_pow
- weighted_r_powers.append(wrp)
- rlp = bls.bytes48_to_G1(g1_lincomb(proofs, weighted_r_powers))
-
- # Step 4.4: Compute RL = RLC - RLI + RLP
- rl = bls.add(rlc, bls.neg(rli))
- rl = bls.add(rl, rlp)
-
- # Step 5: Check pairing (LL, LR) = pairing (RL, [1])
- return bls.pairing_check(
- [
- [ll, lr],
- [rl, bls.neg(bls.bytes96_to_G2(KZG_SETUP_G2_MONOMIAL[0]))],
- ]
- )
-
-
- name: verify_data_column_sidecar#fulu
sources:
- file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts
@@ -11740,7 +10600,7 @@
return True
-- name: verify_data_column_sidecar_inclusion_proof
+- name: verify_data_column_sidecar_inclusion_proof#fulu
sources:
- file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts
search: export function verifyDataColumnSidecarInclusionProof(
@@ -11759,7 +10619,7 @@
)
-- name: verify_data_column_sidecar_kzg_proofs
+- name: verify_data_column_sidecar_kzg_proofs#fulu
sources:
- file: packages/beacon-node/src/chain/validation/dataColumnSidecar.ts
search: export async function verifyDataColumnSidecarKzgProofs(
@@ -11781,7 +10641,7 @@
)
-- name: verify_execution_payload_bid_signature
+- name: verify_execution_payload_bid_signature#gloas
sources:
- file: packages/state-transition/src/block/processExecutionPayloadBid.ts
search: function verifyExecutionPayloadBidSignature(
@@ -11797,7 +10657,7 @@
return bls.Verify(builder.pubkey, signing_root, signed_bid.signature)
-- name: verify_execution_payload_envelope_signature
+- name: verify_execution_payload_envelope_signature#gloas
sources:
- file: packages/state-transition/src/block/processExecutionPayloadEnvelope.ts
search: function verifyExecutionPayloadEnvelopeSignature(
@@ -11813,107 +10673,7 @@
return bls.Verify(builder.pubkey, signing_root, signed_envelope.signature)
-- name: verify_kzg_proof
- sources: []
- spec: |
-
- def verify_kzg_proof(
- commitment_bytes: Bytes48, z_bytes: Bytes32, y_bytes: Bytes32, proof_bytes: Bytes48
- ) -> bool:
- """
- Verify KZG proof that ``p(z) == y`` where ``p(z)`` is the polynomial represented by ``polynomial_kzg``.
- Receives inputs as bytes.
- Public method.
- """
- assert len(commitment_bytes) == BYTES_PER_COMMITMENT
- assert len(z_bytes) == BYTES_PER_FIELD_ELEMENT
- assert len(y_bytes) == BYTES_PER_FIELD_ELEMENT
- assert len(proof_bytes) == BYTES_PER_PROOF
-
- return verify_kzg_proof_impl(
- bytes_to_kzg_commitment(commitment_bytes),
- bytes_to_bls_field(z_bytes),
- bytes_to_bls_field(y_bytes),
- bytes_to_kzg_proof(proof_bytes),
- )
-
-
-- name: verify_kzg_proof_batch
- sources: []
- spec: |
-
- def verify_kzg_proof_batch(
- commitments: Sequence[KZGCommitment],
- zs: Sequence[BLSFieldElement],
- ys: Sequence[BLSFieldElement],
- proofs: Sequence[KZGProof],
- ) -> bool:
- """
- Verify multiple KZG proofs efficiently.
- """
-
- assert len(commitments) == len(zs) == len(ys) == len(proofs)
-
- # Compute a random challenge. Note that it does not have to be computed from a hash,
- # r just has to be random.
- degree_poly = int.to_bytes(FIELD_ELEMENTS_PER_BLOB, 8, KZG_ENDIANNESS)
- num_commitments = int.to_bytes(len(commitments), 8, KZG_ENDIANNESS)
- data = RANDOM_CHALLENGE_KZG_BATCH_DOMAIN + degree_poly + num_commitments
-
- # Append all inputs to the transcript before we hash
- for commitment, z, y, proof in zip(commitments, zs, ys, proofs):
- data += commitment + bls_field_to_bytes(z) + bls_field_to_bytes(y) + proof
-
- r = hash_to_bls_field(data)
- r_powers = compute_powers(r, len(commitments))
-
- # Verify: e(sum r^i proof_i, [s]) ==
- # e(sum r^i (commitment_i - [y_i]) + sum r^i z_i proof_i, [1])
- proof_lincomb = g1_lincomb(proofs, r_powers)
- proof_z_lincomb = g1_lincomb(proofs, [z * r_power for z, r_power in zip(zs, r_powers)])
- C_minus_ys = [
- bls.add(bls.bytes48_to_G1(commitment), bls.multiply(bls.G1(), -y))
- for commitment, y in zip(commitments, ys)
- ]
- C_minus_y_as_KZGCommitments = [KZGCommitment(bls.G1_to_bytes48(x)) for x in C_minus_ys]
- C_minus_y_lincomb = g1_lincomb(C_minus_y_as_KZGCommitments, r_powers)
-
- return bls.pairing_check(
- [
- [
- bls.bytes48_to_G1(proof_lincomb),
- bls.neg(bls.bytes96_to_G2(KZG_SETUP_G2_MONOMIAL[1])),
- ],
- [
- bls.add(bls.bytes48_to_G1(C_minus_y_lincomb), bls.bytes48_to_G1(proof_z_lincomb)),
- bls.G2(),
- ],
- ]
- )
-
-
-- name: verify_kzg_proof_impl
- sources: []
- spec: |
-
- def verify_kzg_proof_impl(
- commitment: KZGCommitment, z: BLSFieldElement, y: BLSFieldElement, proof: KZGProof
- ) -> bool:
- """
- Verify KZG proof that ``p(z) == y`` where ``p(z)`` is the polynomial represented by ``polynomial_kzg``.
- """
- # Verify: P - y = Q * (X - z)
- X_minus_z = bls.add(
- bls.bytes96_to_G2(KZG_SETUP_G2_MONOMIAL[1]),
- bls.multiply(bls.G2(), -z),
- )
- P_minus_y = bls.add(bls.bytes48_to_G1(commitment), bls.multiply(bls.G1(), -y))
- return bls.pairing_check(
- [[P_minus_y, bls.neg(bls.G2())], [bls.bytes48_to_G1(proof), X_minus_z]]
- )
-
-
-- name: voting_period_start_time
+- name: voting_period_start_time#phase0
sources: []
spec: |
@@ -11924,7 +10684,7 @@
return compute_time_at_slot(state, eth1_voting_period_start_slot)
-- name: weigh_justification_and_finalization
+- name: weigh_justification_and_finalization#phase0
sources:
- file: packages/state-transition/src/epoch/processJustificationAndFinalization.ts
search: export function weighJustificationAndFinalization(
@@ -11972,7 +10732,7 @@
state.finalized_checkpoint = old_current_justified_checkpoint
-- name: xor
+- name: xor#phase0
sources:
- file: packages/utils/src/bytes/browser.ts
search: export function xor(
diff --git a/specrefs/presets.yml b/specrefs/presets.yml
index 816b82efd891..7bf8a3dfa834 100644
--- a/specrefs/presets.yml
+++ b/specrefs/presets.yml
@@ -1,4 +1,4 @@
-- name: BASE_REWARD_FACTOR
+- name: BASE_REWARD_FACTOR#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "BASE_REWARD_FACTOR:"
@@ -7,7 +7,7 @@
BASE_REWARD_FACTOR: uint64 = 64
-- name: BUILDER_PENDING_WITHDRAWALS_LIMIT
+- name: BUILDER_PENDING_WITHDRAWALS_LIMIT#gloas
sources:
- file: packages/params/src/presets/mainnet.ts
search: "BUILDER_PENDING_WITHDRAWALS_LIMIT:"
@@ -16,7 +16,7 @@
BUILDER_PENDING_WITHDRAWALS_LIMIT: uint64 = 1048576
-- name: BYTES_PER_LOGS_BLOOM
+- name: BYTES_PER_LOGS_BLOOM#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "BYTES_PER_LOGS_BLOOM:"
@@ -25,7 +25,7 @@
BYTES_PER_LOGS_BLOOM: uint64 = 256
-- name: CELLS_PER_EXT_BLOB
+- name: CELLS_PER_EXT_BLOB#fulu
sources:
- file: packages/params/src/presets/mainnet.ts
search: "CELLS_PER_EXT_BLOB:"
@@ -34,7 +34,7 @@
CELLS_PER_EXT_BLOB = 128
-- name: EFFECTIVE_BALANCE_INCREMENT
+- name: EFFECTIVE_BALANCE_INCREMENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "EFFECTIVE_BALANCE_INCREMENT:"
@@ -43,7 +43,7 @@
EFFECTIVE_BALANCE_INCREMENT: Gwei = 1000000000
-- name: EPOCHS_PER_ETH1_VOTING_PERIOD
+- name: EPOCHS_PER_ETH1_VOTING_PERIOD#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "EPOCHS_PER_ETH1_VOTING_PERIOD:"
@@ -52,7 +52,7 @@
EPOCHS_PER_ETH1_VOTING_PERIOD: uint64 = 64
-- name: EPOCHS_PER_HISTORICAL_VECTOR
+- name: EPOCHS_PER_HISTORICAL_VECTOR#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "EPOCHS_PER_HISTORICAL_VECTOR:"
@@ -61,7 +61,7 @@
EPOCHS_PER_HISTORICAL_VECTOR: uint64 = 65536
-- name: EPOCHS_PER_SLASHINGS_VECTOR
+- name: EPOCHS_PER_SLASHINGS_VECTOR#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "EPOCHS_PER_SLASHINGS_VECTOR:"
@@ -70,7 +70,7 @@
EPOCHS_PER_SLASHINGS_VECTOR: uint64 = 8192
-- name: EPOCHS_PER_SYNC_COMMITTEE_PERIOD
+- name: EPOCHS_PER_SYNC_COMMITTEE_PERIOD#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "EPOCHS_PER_SYNC_COMMITTEE_PERIOD:"
@@ -79,7 +79,7 @@
EPOCHS_PER_SYNC_COMMITTEE_PERIOD: uint64 = 256
-- name: FIELD_ELEMENTS_PER_BLOB
+- name: FIELD_ELEMENTS_PER_BLOB#deneb
sources:
- file: packages/params/src/presets/mainnet.ts
search: "FIELD_ELEMENTS_PER_BLOB:"
@@ -88,7 +88,7 @@
FIELD_ELEMENTS_PER_BLOB: uint64 = 4096
-- name: FIELD_ELEMENTS_PER_CELL
+- name: FIELD_ELEMENTS_PER_CELL#fulu
sources:
- file: packages/params/src/presets/mainnet.ts
search: "FIELD_ELEMENTS_PER_CELL:"
@@ -97,7 +97,7 @@
FIELD_ELEMENTS_PER_CELL: uint64 = 64
-- name: FIELD_ELEMENTS_PER_EXT_BLOB
+- name: FIELD_ELEMENTS_PER_EXT_BLOB#fulu
sources:
- file: packages/params/src/presets/mainnet.ts
search: "FIELD_ELEMENTS_PER_EXT_BLOB:"
@@ -106,7 +106,7 @@
FIELD_ELEMENTS_PER_EXT_BLOB = 8192
-- name: HISTORICAL_ROOTS_LIMIT
+- name: HISTORICAL_ROOTS_LIMIT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "HISTORICAL_ROOTS_LIMIT:"
@@ -115,7 +115,7 @@
HISTORICAL_ROOTS_LIMIT: uint64 = 16777216
-- name: HYSTERESIS_DOWNWARD_MULTIPLIER
+- name: HYSTERESIS_DOWNWARD_MULTIPLIER#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "HYSTERESIS_DOWNWARD_MULTIPLIER:"
@@ -124,7 +124,7 @@
HYSTERESIS_DOWNWARD_MULTIPLIER: uint64 = 1
-- name: HYSTERESIS_QUOTIENT
+- name: HYSTERESIS_QUOTIENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "HYSTERESIS_QUOTIENT:"
@@ -133,7 +133,7 @@
HYSTERESIS_QUOTIENT: uint64 = 4
-- name: HYSTERESIS_UPWARD_MULTIPLIER
+- name: HYSTERESIS_UPWARD_MULTIPLIER#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "HYSTERESIS_UPWARD_MULTIPLIER:"
@@ -142,7 +142,7 @@
HYSTERESIS_UPWARD_MULTIPLIER: uint64 = 5
-- name: INACTIVITY_PENALTY_QUOTIENT
+- name: INACTIVITY_PENALTY_QUOTIENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "INACTIVITY_PENALTY_QUOTIENT:"
@@ -151,7 +151,7 @@
INACTIVITY_PENALTY_QUOTIENT: uint64 = 67108864
-- name: INACTIVITY_PENALTY_QUOTIENT_ALTAIR
+- name: INACTIVITY_PENALTY_QUOTIENT_ALTAIR#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "INACTIVITY_PENALTY_QUOTIENT_ALTAIR:"
@@ -160,7 +160,7 @@
INACTIVITY_PENALTY_QUOTIENT_ALTAIR: uint64 = 50331648
-- name: INACTIVITY_PENALTY_QUOTIENT_BELLATRIX
+- name: INACTIVITY_PENALTY_QUOTIENT_BELLATRIX#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "INACTIVITY_PENALTY_QUOTIENT_BELLATRIX:"
@@ -169,7 +169,7 @@
INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: uint64 = 16777216
-- name: KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH
+- name: KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH#fulu
sources:
- file: packages/params/src/presets/mainnet.ts
search: "KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH:"
@@ -178,7 +178,7 @@
KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: uint64 = 4
-- name: KZG_COMMITMENT_INCLUSION_PROOF_DEPTH
+- name: KZG_COMMITMENT_INCLUSION_PROOF_DEPTH#deneb
sources:
- file: packages/params/src/presets/mainnet.ts
search: "KZG_COMMITMENT_INCLUSION_PROOF_DEPTH:"
@@ -187,7 +187,7 @@
KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: uint64 = 17
-- name: MAX_ATTESTATIONS
+- name: MAX_ATTESTATIONS#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_ATTESTATIONS:"
@@ -196,7 +196,7 @@
MAX_ATTESTATIONS = 128
-- name: MAX_ATTESTATIONS_ELECTRA
+- name: MAX_ATTESTATIONS_ELECTRA#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_ATTESTATIONS_ELECTRA:"
@@ -205,7 +205,7 @@
MAX_ATTESTATIONS_ELECTRA = 8
-- name: MAX_ATTESTER_SLASHINGS
+- name: MAX_ATTESTER_SLASHINGS#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_ATTESTER_SLASHINGS:"
@@ -214,7 +214,7 @@
MAX_ATTESTER_SLASHINGS = 2
-- name: MAX_ATTESTER_SLASHINGS_ELECTRA
+- name: MAX_ATTESTER_SLASHINGS_ELECTRA#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_ATTESTER_SLASHINGS_ELECTRA:"
@@ -223,7 +223,7 @@
MAX_ATTESTER_SLASHINGS_ELECTRA = 1
-- name: MAX_BLOB_COMMITMENTS_PER_BLOCK
+- name: MAX_BLOB_COMMITMENTS_PER_BLOCK#deneb
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_BLOB_COMMITMENTS_PER_BLOCK:"
@@ -232,7 +232,7 @@
MAX_BLOB_COMMITMENTS_PER_BLOCK: uint64 = 4096
-- name: MAX_BLS_TO_EXECUTION_CHANGES
+- name: MAX_BLS_TO_EXECUTION_CHANGES#capella
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_BLS_TO_EXECUTION_CHANGES:"
@@ -241,7 +241,7 @@
MAX_BLS_TO_EXECUTION_CHANGES = 16
-- name: MAX_BYTES_PER_TRANSACTION
+- name: MAX_BYTES_PER_TRANSACTION#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_BYTES_PER_TRANSACTION:"
@@ -250,7 +250,7 @@
MAX_BYTES_PER_TRANSACTION: uint64 = 1073741824
-- name: MAX_COMMITTEES_PER_SLOT
+- name: MAX_COMMITTEES_PER_SLOT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_COMMITTEES_PER_SLOT:"
@@ -259,7 +259,7 @@
MAX_COMMITTEES_PER_SLOT: uint64 = 64
-- name: MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD
+- name: MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD:"
@@ -268,7 +268,7 @@
MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: uint64 = 2
-- name: MAX_DEPOSITS
+- name: MAX_DEPOSITS#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_DEPOSITS:"
@@ -277,7 +277,7 @@
MAX_DEPOSITS = 16
-- name: MAX_DEPOSIT_REQUESTS_PER_PAYLOAD
+- name: MAX_DEPOSIT_REQUESTS_PER_PAYLOAD#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_DEPOSIT_REQUESTS_PER_PAYLOAD:"
@@ -286,7 +286,7 @@
MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: uint64 = 8192
-- name: MAX_EFFECTIVE_BALANCE
+- name: MAX_EFFECTIVE_BALANCE#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_EFFECTIVE_BALANCE:"
@@ -295,7 +295,7 @@
MAX_EFFECTIVE_BALANCE: Gwei = 32000000000
-- name: MAX_EFFECTIVE_BALANCE_ELECTRA
+- name: MAX_EFFECTIVE_BALANCE_ELECTRA#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_EFFECTIVE_BALANCE_ELECTRA:"
@@ -304,7 +304,7 @@
MAX_EFFECTIVE_BALANCE_ELECTRA: Gwei = 2048000000000
-- name: MAX_EXTRA_DATA_BYTES
+- name: MAX_EXTRA_DATA_BYTES#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_EXTRA_DATA_BYTES:"
@@ -313,7 +313,7 @@
MAX_EXTRA_DATA_BYTES = 32
-- name: MAX_PAYLOAD_ATTESTATIONS
+- name: MAX_PAYLOAD_ATTESTATIONS#gloas
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_PAYLOAD_ATTESTATIONS:"
@@ -322,7 +322,7 @@
MAX_PAYLOAD_ATTESTATIONS = 4
-- name: MAX_PENDING_DEPOSITS_PER_EPOCH
+- name: MAX_PENDING_DEPOSITS_PER_EPOCH#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_PENDING_DEPOSITS_PER_EPOCH:"
@@ -331,7 +331,7 @@
MAX_PENDING_DEPOSITS_PER_EPOCH: uint64 = 16
-- name: MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP
+- name: MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP:"
@@ -340,7 +340,7 @@
MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: uint64 = 8
-- name: MAX_PROPOSER_SLASHINGS
+- name: MAX_PROPOSER_SLASHINGS#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_PROPOSER_SLASHINGS:"
@@ -349,7 +349,7 @@
MAX_PROPOSER_SLASHINGS = 16
-- name: MAX_SEED_LOOKAHEAD
+- name: MAX_SEED_LOOKAHEAD#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_SEED_LOOKAHEAD:"
@@ -358,7 +358,7 @@
MAX_SEED_LOOKAHEAD: uint64 = 4
-- name: MAX_TRANSACTIONS_PER_PAYLOAD
+- name: MAX_TRANSACTIONS_PER_PAYLOAD#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_TRANSACTIONS_PER_PAYLOAD:"
@@ -367,7 +367,7 @@
MAX_TRANSACTIONS_PER_PAYLOAD: uint64 = 1048576
-- name: MAX_VALIDATORS_PER_COMMITTEE
+- name: MAX_VALIDATORS_PER_COMMITTEE#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_VALIDATORS_PER_COMMITTEE:"
@@ -376,7 +376,7 @@
MAX_VALIDATORS_PER_COMMITTEE: uint64 = 2048
-- name: MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP
+- name: MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP#capella
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP:"
@@ -385,7 +385,7 @@
MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP = 16384
-- name: MAX_VOLUNTARY_EXITS
+- name: MAX_VOLUNTARY_EXITS#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_VOLUNTARY_EXITS:"
@@ -394,7 +394,7 @@
MAX_VOLUNTARY_EXITS = 16
-- name: MAX_WITHDRAWALS_PER_PAYLOAD
+- name: MAX_WITHDRAWALS_PER_PAYLOAD#capella
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_WITHDRAWALS_PER_PAYLOAD:"
@@ -403,7 +403,7 @@
MAX_WITHDRAWALS_PER_PAYLOAD: uint64 = 16
-- name: MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD
+- name: MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD:"
@@ -412,7 +412,7 @@
MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: uint64 = 16
-- name: MIN_ACTIVATION_BALANCE
+- name: MIN_ACTIVATION_BALANCE#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_ACTIVATION_BALANCE:"
@@ -421,7 +421,7 @@
MIN_ACTIVATION_BALANCE: Gwei = 32000000000
-- name: MIN_ATTESTATION_INCLUSION_DELAY
+- name: MIN_ATTESTATION_INCLUSION_DELAY#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_ATTESTATION_INCLUSION_DELAY:"
@@ -430,7 +430,7 @@
MIN_ATTESTATION_INCLUSION_DELAY: uint64 = 1
-- name: MIN_DEPOSIT_AMOUNT
+- name: MIN_DEPOSIT_AMOUNT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_DEPOSIT_AMOUNT:"
@@ -439,7 +439,7 @@
MIN_DEPOSIT_AMOUNT: Gwei = 1000000000
-- name: MIN_EPOCHS_TO_INACTIVITY_PENALTY
+- name: MIN_EPOCHS_TO_INACTIVITY_PENALTY#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_EPOCHS_TO_INACTIVITY_PENALTY:"
@@ -448,7 +448,7 @@
MIN_EPOCHS_TO_INACTIVITY_PENALTY: uint64 = 4
-- name: MIN_SEED_LOOKAHEAD
+- name: MIN_SEED_LOOKAHEAD#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SEED_LOOKAHEAD:"
@@ -457,7 +457,7 @@
MIN_SEED_LOOKAHEAD: uint64 = 1
-- name: MIN_SLASHING_PENALTY_QUOTIENT
+- name: MIN_SLASHING_PENALTY_QUOTIENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SLASHING_PENALTY_QUOTIENT:"
@@ -466,7 +466,7 @@
MIN_SLASHING_PENALTY_QUOTIENT: uint64 = 128
-- name: MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR
+- name: MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR:"
@@ -475,7 +475,7 @@
MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: uint64 = 64
-- name: MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX
+- name: MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX:"
@@ -484,7 +484,7 @@
MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: uint64 = 32
-- name: MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA
+- name: MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA:"
@@ -493,7 +493,7 @@
MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: uint64 = 4096
-- name: MIN_SYNC_COMMITTEE_PARTICIPANTS
+- name: MIN_SYNC_COMMITTEE_PARTICIPANTS#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "MIN_SYNC_COMMITTEE_PARTICIPANTS:"
@@ -502,7 +502,7 @@
MIN_SYNC_COMMITTEE_PARTICIPANTS = 1
-- name: NUMBER_OF_COLUMNS
+- name: NUMBER_OF_COLUMNS#fulu
sources:
- file: packages/params/src/presets/mainnet.ts
search: "NUMBER_OF_COLUMNS:"
@@ -511,7 +511,7 @@
NUMBER_OF_COLUMNS: uint64 = 128
-- name: PENDING_CONSOLIDATIONS_LIMIT
+- name: PENDING_CONSOLIDATIONS_LIMIT#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PENDING_CONSOLIDATIONS_LIMIT:"
@@ -520,7 +520,7 @@
PENDING_CONSOLIDATIONS_LIMIT: uint64 = 262144
-- name: PENDING_DEPOSITS_LIMIT
+- name: PENDING_DEPOSITS_LIMIT#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PENDING_DEPOSITS_LIMIT:"
@@ -529,7 +529,7 @@
PENDING_DEPOSITS_LIMIT: uint64 = 134217728
-- name: PENDING_PARTIAL_WITHDRAWALS_LIMIT
+- name: PENDING_PARTIAL_WITHDRAWALS_LIMIT#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PENDING_PARTIAL_WITHDRAWALS_LIMIT:"
@@ -538,7 +538,7 @@
PENDING_PARTIAL_WITHDRAWALS_LIMIT: uint64 = 134217728
-- name: PROPORTIONAL_SLASHING_MULTIPLIER
+- name: PROPORTIONAL_SLASHING_MULTIPLIER#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PROPORTIONAL_SLASHING_MULTIPLIER:"
@@ -547,7 +547,7 @@
PROPORTIONAL_SLASHING_MULTIPLIER: uint64 = 1
-- name: PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR
+- name: PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR:"
@@ -556,7 +556,7 @@
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: uint64 = 2
-- name: PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX
+- name: PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX#bellatrix
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX:"
@@ -565,7 +565,7 @@
PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: uint64 = 3
-- name: PROPOSER_REWARD_QUOTIENT
+- name: PROPOSER_REWARD_QUOTIENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PROPOSER_REWARD_QUOTIENT:"
@@ -574,7 +574,7 @@
PROPOSER_REWARD_QUOTIENT: uint64 = 8
-- name: PTC_SIZE
+- name: PTC_SIZE#gloas
sources:
- file: packages/params/src/presets/mainnet.ts
search: "PTC_SIZE:"
@@ -583,7 +583,7 @@
PTC_SIZE: uint64 = 512
-- name: SHUFFLE_ROUND_COUNT
+- name: SHUFFLE_ROUND_COUNT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "SHUFFLE_ROUND_COUNT:"
@@ -592,7 +592,7 @@
SHUFFLE_ROUND_COUNT: uint64 = 90
-- name: SLOTS_PER_EPOCH
+- name: SLOTS_PER_EPOCH#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "SLOTS_PER_EPOCH:"
@@ -601,7 +601,7 @@
SLOTS_PER_EPOCH: uint64 = 32
-- name: SLOTS_PER_HISTORICAL_ROOT
+- name: SLOTS_PER_HISTORICAL_ROOT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "SLOTS_PER_HISTORICAL_ROOT:"
@@ -610,7 +610,7 @@
SLOTS_PER_HISTORICAL_ROOT: uint64 = 8192
-- name: SYNC_COMMITTEE_SIZE
+- name: SYNC_COMMITTEE_SIZE#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "SYNC_COMMITTEE_SIZE:"
@@ -619,7 +619,7 @@
SYNC_COMMITTEE_SIZE: uint64 = 512
-- name: TARGET_COMMITTEE_SIZE
+- name: TARGET_COMMITTEE_SIZE#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "TARGET_COMMITTEE_SIZE:"
@@ -628,7 +628,7 @@
TARGET_COMMITTEE_SIZE: uint64 = 128
-- name: UPDATE_TIMEOUT
+- name: UPDATE_TIMEOUT#altair
sources:
- file: packages/params/src/presets/mainnet.ts
search: "UPDATE_TIMEOUT:"
@@ -637,7 +637,7 @@
UPDATE_TIMEOUT = 8192
-- name: VALIDATOR_REGISTRY_LIMIT
+- name: VALIDATOR_REGISTRY_LIMIT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "VALIDATOR_REGISTRY_LIMIT:"
@@ -646,7 +646,7 @@
VALIDATOR_REGISTRY_LIMIT: uint64 = 1099511627776
-- name: WHISTLEBLOWER_REWARD_QUOTIENT
+- name: WHISTLEBLOWER_REWARD_QUOTIENT#phase0
sources:
- file: packages/params/src/presets/mainnet.ts
search: "WHISTLEBLOWER_REWARD_QUOTIENT:"
@@ -655,7 +655,7 @@
WHISTLEBLOWER_REWARD_QUOTIENT: uint64 = 512
-- name: WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA
+- name: WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA#electra
sources:
- file: packages/params/src/presets/mainnet.ts
search: "WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA:"
diff --git a/specrefs/types.yml b/specrefs/types.yml
index d1aacd6dd6d8..1fa4d5c1a65b 100644
--- a/specrefs/types.yml
+++ b/specrefs/types.yml
@@ -1,4 +1,4 @@
-- name: BLSPubkey
+- name: BLSPubkey#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const BLSPubkey =
@@ -7,7 +7,7 @@
BLSPubkey = Bytes48
-- name: BLSSignature
+- name: BLSSignature#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const BLSSignature =
@@ -16,7 +16,7 @@
BLSSignature = Bytes96
-- name: Blob
+- name: Blob#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const Blob =
@@ -25,7 +25,7 @@
Blob = ByteVector[BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB]
-- name: BlobIndex
+- name: BlobIndex#deneb
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const BlobIndex =
@@ -34,7 +34,7 @@
BlobIndex = uint64
-- name: Cell
+- name: Cell#fulu
sources:
- file: packages/types/src/fulu/sszTypes.ts
search: export const Cell =
@@ -43,14 +43,14 @@
Cell = ByteVector[BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_CELL]
-- name: CellIndex
+- name: CellIndex#fulu
sources: []
spec: |
CellIndex = uint64
-- name: ColumnIndex
+- name: ColumnIndex#fulu
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const ColumnIndex =
@@ -59,14 +59,14 @@
ColumnIndex = uint64
-- name: CommitmentIndex
+- name: CommitmentIndex#fulu
sources: []
spec: |
CommitmentIndex = uint64
-- name: CommitteeIndex
+- name: CommitteeIndex#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const CommitteeIndex =
@@ -93,7 +93,7 @@
CurrentSyncCommitteeBranch = Vector[Bytes32, floorlog2(CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA)]
-- name: CustodyIndex
+- name: CustodyIndex#fulu
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const CustodyIndex =
@@ -102,7 +102,7 @@
CustodyIndex = uint64
-- name: Domain
+- name: Domain#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Domain =
@@ -111,7 +111,7 @@
Domain = Bytes32
-- name: DomainType
+- name: DomainType#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const DomainType =
@@ -120,7 +120,7 @@
DomainType = Bytes4
-- name: Epoch
+- name: Epoch#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Epoch =
@@ -129,14 +129,14 @@
Epoch = uint64
-- name: Ether
+- name: Ether#phase0
sources: []
spec: |
Ether = uint64
-- name: ExecutionAddress
+- name: ExecutionAddress#bellatrix
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const ExecutionAddress =
@@ -145,7 +145,7 @@
ExecutionAddress = Bytes20
-- name: ExecutionBranch
+- name: ExecutionBranch#capella
sources:
- file: packages/types/src/capella/sszTypes.ts
search: export const ExecutionBranch =
@@ -172,7 +172,7 @@
FinalityBranch = Vector[Bytes32, floorlog2(FINALIZED_ROOT_GINDEX_ELECTRA)]
-- name: ForkDigest
+- name: ForkDigest#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const ForkDigest =
@@ -181,7 +181,7 @@
ForkDigest = Bytes4
-- name: G1Point
+- name: G1Point#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const G1Point =
@@ -190,7 +190,7 @@
G1Point = Bytes48
-- name: G2Point
+- name: G2Point#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const G2Point =
@@ -199,7 +199,7 @@
G2Point = Bytes96
-- name: Gwei
+- name: Gwei#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Gwei =
@@ -208,14 +208,14 @@
Gwei = uint64
-- name: Hash32
+- name: Hash32#phase0
sources: []
spec: |
Hash32 = Bytes32
-- name: KZGCommitment
+- name: KZGCommitment#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const KZGCommitment =
@@ -224,7 +224,7 @@
KZGCommitment = Bytes48
-- name: KZGProof
+- name: KZGProof#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const KZGProof =
@@ -251,14 +251,14 @@
NextSyncCommitteeBranch = Vector[Bytes32, floorlog2(NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA)]
-- name: NodeID
+- name: NodeID#phase0
sources: []
spec: |
NodeID = uint256
-- name: ParticipationFlags
+- name: ParticipationFlags#altair
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const ParticipationFlags =
@@ -267,21 +267,21 @@
ParticipationFlags = uint8
-- name: PayloadId
+- name: PayloadId#bellatrix
sources: []
spec: |
PayloadId = Bytes8
-- name: PayloadStatus
+- name: PayloadStatus#gloas
sources: []
spec: |
PayloadStatus = uint8
-- name: Root
+- name: Root#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Root =
@@ -290,7 +290,7 @@
Root = Bytes32
-- name: RowIndex
+- name: RowIndex#fulu
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const RowIndex =
@@ -299,7 +299,7 @@
RowIndex = uint64
-- name: Slot
+- name: Slot#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Slot =
@@ -308,14 +308,14 @@
Slot = uint64
-- name: SubnetID
+- name: SubnetID#phase0
sources: []
spec: |
SubnetID = uint64
-- name: Transaction
+- name: Transaction#bellatrix
sources:
- file: packages/types/src/bellatrix/sszTypes.ts
search: export const Transaction =
@@ -324,7 +324,7 @@
Transaction = ByteList[MAX_BYTES_PER_TRANSACTION]
-- name: ValidatorIndex
+- name: ValidatorIndex#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const ValidatorIndex =
@@ -333,7 +333,7 @@
ValidatorIndex = uint64
-- name: Version
+- name: Version#phase0
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const Version =
@@ -342,7 +342,7 @@
Version = Bytes4
-- name: VersionedHash
+- name: VersionedHash#deneb
sources:
- file: packages/types/src/deneb/sszTypes.ts
search: export const VersionedHash =
@@ -351,7 +351,7 @@
VersionedHash = Bytes32
-- name: WithdrawalIndex
+- name: WithdrawalIndex#capella
sources:
- file: packages/types/src/primitive/sszTypes.ts
search: export const WithdrawalIndex =