2019-01-06 15:25:43 +00:00
|
|
|
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 {
|
2019-01-12 02:11:43 +00:00
|
|
|
SkipSlots []uint64 `yaml:"skip_slots"`
|
|
|
|
DepositSlots []uint64 `yaml:"deposit_slots"`
|
|
|
|
Deposits []*StateTestDeposit `yaml:"deposits"`
|
|
|
|
ProposerSlashings []*StateTestProposerSlashing `yaml:"proposer_slashings"`
|
2019-01-30 10:11:13 +00:00
|
|
|
AttesterSlashings []*StateTestAttesterSlashing `yaml:"attester_slashings"`
|
2019-01-14 17:02:49 +00:00
|
|
|
ValidatorExits []*StateTestValidatorExit `yaml:"validator_exits"`
|
2019-01-12 02:11:43 +00:00
|
|
|
EpochLength uint64 `yaml:"epoch_length"`
|
|
|
|
ShardCount uint64 `yaml:"shard_count"`
|
|
|
|
DepositsForChainStart uint64 `yaml:"deposits_for_chain_start"`
|
|
|
|
NumSlots uint64 `yaml:"num_slots"`
|
2019-01-12 01:10:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// StateTestDeposit --
|
|
|
|
type StateTestDeposit struct {
|
|
|
|
Slot uint64 `yaml:"slot"`
|
|
|
|
Amount uint64 `yaml:"amount"`
|
|
|
|
MerkleIndex uint64 `yaml:"merkle_index"`
|
|
|
|
Pubkey string `yaml:"pubkey"`
|
2019-01-06 15:25:43 +00:00
|
|
|
}
|
|
|
|
|
2019-01-12 02:11:43 +00:00
|
|
|
// StateTestProposerSlashing --
|
|
|
|
type StateTestProposerSlashing struct {
|
|
|
|
Slot uint64 `yaml:"slot"`
|
2019-01-30 10:11:13 +00:00
|
|
|
ProposerIndex uint64 `yaml:"proposer_index"`
|
2019-01-12 02:11:43 +00:00
|
|
|
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"`
|
|
|
|
}
|
|
|
|
|
2019-01-30 10:11:13 +00:00
|
|
|
// 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"`
|
2019-01-14 15:54:27 +00:00
|
|
|
}
|
|
|
|
|
2019-01-14 17:02:49 +00:00
|
|
|
// StateTestValidatorExit --
|
|
|
|
type StateTestValidatorExit struct {
|
|
|
|
Slot uint64 `yaml:"slot"`
|
2019-01-30 10:11:13 +00:00
|
|
|
ValidatorIndex uint64 `yaml:"validator_index"`
|
2019-01-14 17:02:49 +00:00
|
|
|
}
|
|
|
|
|
2019-01-06 15:25:43 +00:00
|
|
|
// StateTestResults --
|
|
|
|
type StateTestResults struct {
|
2019-01-12 02:11:43 +00:00
|
|
|
Slot uint64
|
|
|
|
NumValidators int `yaml:"num_validators"`
|
2019-01-30 10:11:13 +00:00
|
|
|
PenalizedValidators []uint64 `yaml:"penalized_validators"`
|
|
|
|
ExitedValidators []uint64 `yaml:"exited_validators"`
|
2019-01-06 15:25:43 +00:00
|
|
|
}
|