@@ -360,26 +360,25 @@ library OperatorLib {
360360 }
361361 cumulativeIndexSSV += operator.snapshot.index;
362362
363- if (operator.snapshot.block == 0 && operator.ethSnapshot.block == 0 ) {
364- continue ;
365- }
366- if (operator.ethSnapshot.block == 0 ) {
367- // first-time ETH usage or migration
368- ensureETHDefaults (operator, operatorId);
369-
370- } else {
371- // already ETH operator
372- updateSnapshotSt (operator, operatorId);
363+ // Removed operators (both blocks == 0) contribute their frozen index
364+ // but are not mutated (no validator count or fee changes)
365+ if (operator.snapshot.block != 0 || operator.ethSnapshot.block != 0 ) {
366+ if (operator.ethSnapshot.block == 0 ) {
367+ // first-time ETH usage or migration
368+ ensureETHDefaults (operator, operatorId);
369+ } else {
370+ // already ETH operator
371+ updateSnapshotSt ( operator, operatorId);
372+ }
373373
374- cumulativeIndexETH += operator.ethSnapshot.index;
375- }
374+ // update ETH validator count for both new ETH-initialized and existing ETH-initialized operators
375+ if ((operator.ethValidatorCount += validatorCount) > sp.validatorsPerOperatorLimit) {
376+ revert ISSVNetworkCore.ExceedValidatorLimitWithData (operatorId);
377+ }
376378
377- // update ETH validator count for both new ETH-initialized and existing ETH-initialized operators
378- if ((operator.ethValidatorCount += validatorCount) > sp.validatorsPerOperatorLimit) {
379- revert ISSVNetworkCore.ExceedValidatorLimitWithData (operatorId);
379+ cumulativeFeeETH += PackedETH.unwrap (operator.ethFee);
380380 }
381-
382- cumulativeFeeETH += PackedETH.unwrap (operator.ethFee);
381+ cumulativeIndexETH += operator.ethSnapshot.index;
383382 }
384383 }
385384
0 commit comments