UNPKG

@lodestar/types

Version:

Typescript types required for lodestar

35 lines 1.36 kB
import { FAR_FUTURE_EPOCH } from "@lodestar/params"; /** * Get the status of the validator * based on conditions outlined in https://hackmd.io/ofFJ5gOmQpu1jjHilHbdQQ */ export function getValidatorStatus(validator, currentEpoch) { // pending if (validator.activationEpoch > currentEpoch) { if (validator.activationEligibilityEpoch === FAR_FUTURE_EPOCH) { return "pending_initialized"; } if (validator.activationEligibilityEpoch < FAR_FUTURE_EPOCH) { return "pending_queued"; } } // active if (validator.activationEpoch <= currentEpoch && currentEpoch < validator.exitEpoch) { if (validator.exitEpoch === FAR_FUTURE_EPOCH) { return "active_ongoing"; } if (validator.exitEpoch < FAR_FUTURE_EPOCH) { return validator.slashed ? "active_slashed" : "active_exiting"; } } // exited if (validator.exitEpoch <= currentEpoch && currentEpoch < validator.withdrawableEpoch) { return validator.slashed ? "exited_slashed" : "exited_unslashed"; } // withdrawal if (validator.withdrawableEpoch <= currentEpoch) { return validator.effectiveBalance !== 0 ? "withdrawal_possible" : "withdrawal_done"; } throw new Error("ValidatorStatus unknown"); } //# sourceMappingURL=validatorStatus.js.map