mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 12:57:18 +00:00
73443208a1
* Remove native state flag and use native state in spectests * remove feature from tests * use e2e config in slasher simulator * use params.BeaconConfig in testutil * use correct function * use minimal config in go_test * fix TestListValidators * parameterize sync committee bits and aggregation bits * Fix TestServer_ListIndexedAttestations_GenesisEpoch (cherry picked from commit 254ab623dde08ae8886b152facdbbd8889ed79db) * fix more tests * fix even more * moreeee * aaaand more * one more fix * one more * simplify TestGetAltairDuties_UnknownPubkey * comment out problematic test * one more fix * one more * aaaand one more * another * use fieldparams in HydrateBlindedBeaconBlockBodyBellatrix * create new package for mainnet tests * TestServer_GetBellatrixBeaconBlock * change slashed validator index * clear cache in reward_test.go * deprecate flag * create bazel mainnet target * move attester mainnet test to mainnet target * "fix" proposer tests * use minimal config in TestServer_circuitBreakBuilder * fix TestProposer_ProposeBlock_OK * more fixes in validator package * more fixes * more fixes * test code * move TestProposer_GetBeaconBlock_BellatrixEpoch to minimal * finally * remove proposer_bellatrix_mainnet_test.go * fix TestServer_GetBellatrixBeaconBlock_HappyCase * fix TestServer_GetBellatrixBeaconBlock_BuilderCase * Preston needs to fix this! * Revert "Preston needs to fix this!" This reverts commit b03d97a16e3080e254c7b19d7f193d3c600ca869. * remove proto state tests * fix migration tests * static analysis fix * review * remove proto state * swap state in tests * fix BUILD file in /proto/testing * remove metrics test with nil state
86 lines
3.1 KiB
Go
86 lines
3.1 KiB
Go
package execution
|
|
|
|
import (
|
|
"github.com/prysmaticlabs/prysm/v3/beacon-chain/core/time"
|
|
"github.com/prysmaticlabs/prysm/v3/beacon-chain/state"
|
|
state_native "github.com/prysmaticlabs/prysm/v3/beacon-chain/state/state-native"
|
|
"github.com/prysmaticlabs/prysm/v3/config/params"
|
|
enginev1 "github.com/prysmaticlabs/prysm/v3/proto/engine/v1"
|
|
ethpb "github.com/prysmaticlabs/prysm/v3/proto/prysm/v1alpha1"
|
|
)
|
|
|
|
// UpgradeToBellatrix updates inputs a generic state to return the version Bellatrix state.
|
|
// It inserts an empty `ExecutionPayloadHeader` into the state.
|
|
func UpgradeToBellatrix(state state.BeaconState) (state.BeaconState, error) {
|
|
epoch := time.CurrentEpoch(state)
|
|
|
|
currentSyncCommittee, err := state.CurrentSyncCommittee()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
nextSyncCommittee, err := state.NextSyncCommittee()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
prevEpochParticipation, err := state.PreviousEpochParticipation()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
currentEpochParticipation, err := state.CurrentEpochParticipation()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
inactivityScores, err := state.InactivityScores()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
s := ðpb.BeaconStateBellatrix{
|
|
GenesisTime: state.GenesisTime(),
|
|
GenesisValidatorsRoot: state.GenesisValidatorsRoot(),
|
|
Slot: state.Slot(),
|
|
Fork: ðpb.Fork{
|
|
PreviousVersion: state.Fork().CurrentVersion,
|
|
CurrentVersion: params.BeaconConfig().BellatrixForkVersion,
|
|
Epoch: epoch,
|
|
},
|
|
LatestBlockHeader: state.LatestBlockHeader(),
|
|
BlockRoots: state.BlockRoots(),
|
|
StateRoots: state.StateRoots(),
|
|
HistoricalRoots: state.HistoricalRoots(),
|
|
Eth1Data: state.Eth1Data(),
|
|
Eth1DataVotes: state.Eth1DataVotes(),
|
|
Eth1DepositIndex: state.Eth1DepositIndex(),
|
|
Validators: state.Validators(),
|
|
Balances: state.Balances(),
|
|
RandaoMixes: state.RandaoMixes(),
|
|
Slashings: state.Slashings(),
|
|
PreviousEpochParticipation: prevEpochParticipation,
|
|
CurrentEpochParticipation: currentEpochParticipation,
|
|
JustificationBits: state.JustificationBits(),
|
|
PreviousJustifiedCheckpoint: state.PreviousJustifiedCheckpoint(),
|
|
CurrentJustifiedCheckpoint: state.CurrentJustifiedCheckpoint(),
|
|
FinalizedCheckpoint: state.FinalizedCheckpoint(),
|
|
InactivityScores: inactivityScores,
|
|
CurrentSyncCommittee: currentSyncCommittee,
|
|
NextSyncCommittee: nextSyncCommittee,
|
|
LatestExecutionPayloadHeader: &enginev1.ExecutionPayloadHeader{
|
|
ParentHash: make([]byte, 32),
|
|
FeeRecipient: make([]byte, 20),
|
|
StateRoot: make([]byte, 32),
|
|
ReceiptsRoot: make([]byte, 32),
|
|
LogsBloom: make([]byte, 256),
|
|
PrevRandao: make([]byte, 32),
|
|
BlockNumber: 0,
|
|
GasLimit: 0,
|
|
GasUsed: 0,
|
|
Timestamp: 0,
|
|
BaseFeePerGas: make([]byte, 32),
|
|
BlockHash: make([]byte, 32),
|
|
TransactionsRoot: make([]byte, 32),
|
|
},
|
|
}
|
|
|
|
return state_native.InitializeFromProtoUnsafeBellatrix(s)
|
|
}
|