Status epochs, for reference:
Statuses:
pending
validator.activation_epoch > current_epochpending_initialized - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get into the activation queue.
validator.activation_eligibility_epoch == FAR_FUTURE_EPOCHpending_queued - When you are waiting to get activated, and have enough funds etc. while in the queue, your activation epoch keeps changing until you get to the front and make it through (finalization is a requirement here too)
(validator.activation_eligibility_epoch < FAR_FUTURE_EPOCH) and (validator.activation_epoch > current_epoch)active:
validator.activation_epoch <= current_epoch < validator.exit_epochactive_ongoing - When you must be attesting, and have not initiated any exit.
(validator.activation_epoch <= current_epoch) and (validator.exit_epoch == FAR_FUTURE_EPOCH)active_exiting - When you are still active, but filed a voluntary request to exit.
(validator.activation_epoch <= current_epoch) and (current_epoch < validator.exit_epoch < FAR_FUTURE_EPOCH) and (not validator.slashed)active_slashed - When you are still active, but have a slashed status, and are scheduled to exit.
(validator.activation_epoch <= current_epoch) and (current_epoch < validator.exit_epoch < FAR_FUTURE_EPOCH) and validator.slashedexited:
(validator.exit_epoch <= current_epoch < validator.withdrawable_epoch)exited_unslashed - When you reach your reguler exit epoch, not being slashed, and you don't have to attest any more, but cannot withdraw yet.
(validator.exit_epoch <= current_epoch < validator.withdrawable_epoch) and (not validator.slashed)exited_slashed - When you reach your exit epoch, but were slashed, have to wait for a longer withdrawal period, and still will lose stake based on the 50% backward and forward context rule.
(validator.exit_epoch <= current_epoch < validator.withdrawable_epoch) and validator.slashedwithdrawal:
validator.withdrawable_epoch <= current_epochwithdrawal_possible - after having exited, a while later you are permitted to move funds, and are truly out of the system
(validator.withdrawable_epoch <= current_epoch) and (balance != 0)withdrawal_done (not possible in phase0, except slashing full balance) - actually having moved funds away
(validator.withdrawable_epoch <= current_epoch) and (balance == 0)