prysm-pulse/beacon-chain/chaintest/backend/state_test_format.go
2019-01-30 11:11:13 +01:00

79 lines
3.0 KiB
Go

package backend
// StateTest --
type StateTest struct {
Title string
Summary string
Fork string `yaml:"fork"`
Version string `yaml:"version"`
TestSuite string `yaml:"test_suite"`
TestCases []*StateTestCase `yaml:"test_cases"`
}
// StateTestCase --
type StateTestCase struct {
Config *StateTestConfig `yaml:"config"`
Results *StateTestResults `yaml:"results"`
}
// StateTestConfig --
type StateTestConfig struct {
SkipSlots []uint64 `yaml:"skip_slots"`
DepositSlots []uint64 `yaml:"deposit_slots"`
Deposits []*StateTestDeposit `yaml:"deposits"`
ProposerSlashings []*StateTestProposerSlashing `yaml:"proposer_slashings"`
AttesterSlashings []*StateTestAttesterSlashing `yaml:"attester_slashings"`
ValidatorExits []*StateTestValidatorExit `yaml:"validator_exits"`
EpochLength uint64 `yaml:"epoch_length"`
ShardCount uint64 `yaml:"shard_count"`
DepositsForChainStart uint64 `yaml:"deposits_for_chain_start"`
NumSlots uint64 `yaml:"num_slots"`
}
// StateTestDeposit --
type StateTestDeposit struct {
Slot uint64 `yaml:"slot"`
Amount uint64 `yaml:"amount"`
MerkleIndex uint64 `yaml:"merkle_index"`
Pubkey string `yaml:"pubkey"`
}
// StateTestProposerSlashing --
type StateTestProposerSlashing struct {
Slot uint64 `yaml:"slot"`
ProposerIndex uint64 `yaml:"proposer_index"`
Proposal1Shard uint64 `yaml:"proposal_1_shard"`
Proposal2Shard uint64 `yaml:"proposal_2_shard"`
Proposal1Slot uint64 `yaml:"proposal_1_slot"`
Proposal2Slot uint64 `yaml:"proposal_2_slot"`
Proposal1Root string `yaml:"proposal_1_root"`
Proposal2Root string `yaml:"proposal_2_root"`
}
// StateTestAttesterSlashing --
type StateTestAttesterSlashing struct {
Slot uint64 `yaml:"slot"`
SlashableVote1Slot uint64 `yaml:"slashable_vote_1_slot"`
SlashableVote1JustifiedSlot uint64 `yaml:"slashable_vote_1_justified_slot"`
SlashableVote1ValidatorIndices []uint64 `yaml:"slashable_vote_1_validator_indices"`
SlashableVote1CustodyBitField string `yaml:"slashable_vote_1_custody_bitfield"`
SlashableVote2Slot uint64 `yaml:"slashable_vote_2_slot"`
SlashableVote2JustifiedSlot uint64 `yaml:"slashable_vote_2_justified_slot"`
SlashableVote2ValidatorIndices []uint64 `yaml:"slashable_vote_2_validator_indices"`
SlashableVote2CustodyBitField string `yaml:"slashable_vote_2_custody_bitfield"`
}
// StateTestValidatorExit --
type StateTestValidatorExit struct {
Slot uint64 `yaml:"slot"`
ValidatorIndex uint64 `yaml:"validator_index"`
}
// StateTestResults --
type StateTestResults struct {
Slot uint64
NumValidators int `yaml:"num_validators"`
PenalizedValidators []uint64 `yaml:"penalized_validators"`
ExitedValidators []uint64 `yaml:"exited_validators"`
}