This commit is contained in:
Agnish Ghosh 2024-10-31 01:42:36 +05:30
parent b31e3aacfe
commit 231e56d59b
2 changed files with 29 additions and 2 deletions

View File

@ -275,7 +275,8 @@ proc collectEpochRewardsAndPenalties*(
proc collectEpochRewardsAndPenalties*(
rewardsAndPenalties: var seq[RewardsAndPenalties],
state: var (altair.BeaconState | bellatrix.BeaconState |
capella.BeaconState | deneb.BeaconState | electra.BeaconState),
capella.BeaconState | deneb.BeaconState | electra.BeaconState |
fulu.BeaconState),
cache: var StateCache, cfg: RuntimeConfig, flags: UpdateFlags) =
if get_current_epoch(state) == GENESIS_EPOCH:
return

View File

@ -161,6 +161,11 @@ type
desc: "The epoch of the Electra hard-fork"
name: "electra-fork-epoch" .}: Epoch
fuluForkEpoch* {.
defaultValue: FAR_FUTURE_EPOCH
desc: "The epoch of the Fulu hard-fork"
name: "fulu-fork-epoch" .}: Epoch
outputGenesis* {.
desc: "Output file where to write the initial state snapshot"
name: "output-genesis" .}: OutFile
@ -319,6 +324,25 @@ func `as`(blk: BlockObject, T: type electra.ExecutionPayloadHeader): T =
blob_gas_used: uint64 blk.blobGasUsed.getOrDefault(),
excess_blob_gas: uint64 blk.excessBlobGas.getOrDefault())
func `as`(blk: BlockObject, T: type fulu.ExecutionPayloadHeader): T =
T(parent_hash: blk.parentHash as Eth2Digest,
fee_recipient: blk.miner as ExecutionAddress,
state_root: blk.stateRoot as Eth2Digest,
receipts_root: blk.receiptsRoot as Eth2Digest,
logs_bloom: BloomLogs(data: distinctBase(blk.logsBloom)),
prev_randao: Eth2Digest(data: blk.difficulty.toByteArrayBE),
block_number: uint64 blk.number,
gas_limit: uint64 blk.gasLimit,
gas_used: uint64 blk.gasUsed,
timestamp: uint64 blk.timestamp,
extra_data: List[byte, MAX_EXTRA_DATA_BYTES].init(blk.extraData.bytes),
base_fee_per_gas: blk.baseFeePerGas.getOrDefault(),
block_hash: blk.hash as Eth2Digest,
transactions_root: blk.transactionsRoot as Eth2Digest,
withdrawals_root: blk.withdrawalsRoot.getOrDefault() as Eth2Digest,
blob_gas_used: uint64 blk.blobGasUsed.getOrDefault(),
excess_blob_gas: uint64 blk.excessBlobGas.getOrDefault())
func createDepositContractSnapshot(
deposits: seq[DepositData],
blockHash: Eth2Digest,
@ -461,7 +485,9 @@ proc doCreateTestnet*(config: CliConfig,
initialState[].genesis_validators_root
let genesisValidatorsRoot =
if config.electraForkEpoch == 0:
if config.fuluForkEpoch == 0:
createAndSaveState(genesisBlock as fulu.ExecutionPayloadHeader)
elif config.electraForkEpoch == 0:
createAndSaveState(genesisBlock as electra.ExecutionPayloadHeader)
elif config.denebForkEpoch == 0:
createAndSaveState(genesisBlock as deneb.ExecutionPayloadHeader)