import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochTransitionCache } from "../types.js"; /** * Update validator registry for validators that activate + exit * updateBalance is an optimization: * - For spec test, it's true * - For processEpoch flow, it's false, i.e to only update balances once in processRewardsAndPenalties() * * PERF: almost no (constant) cost. * - Total slashings by increment is computed once and stored in state.epochCtx.totalSlashingsByIncrement so no need to compute here * - Penalties for validators with the same effective balance are the same and computed once * - No need to apply penalties to validators here, do it once in processRewardsAndPenalties() * - indicesToSlash: max len is 8704. But it's very unlikely since it would require all validators on the same * committees to sign slashable attestations. * - On normal mainnet conditions indicesToSlash = 0 * * @returns slashing penalties to be applied in processRewardsAndPenalties() */ export declare function processSlashings(state: CachedBeaconStateAllForks, cache: EpochTransitionCache, updateBalance?: boolean): number[]; /** * Get total slashings by increment. * By default, total slashings are computed every time we run processSlashings() function above. * We improve it by computing it once and store it in state.epochCtx.totalSlashingsByIncrement * Every change to state.slashings should update totalSlashingsByIncrement. */ export declare function getTotalSlashingsByIncrement(state: BeaconStateAllForks): number; //# sourceMappingURL=processSlashings.d.ts.map