@@ -555,31 +555,40 @@ contract RegistryCoordinator is
555
555
) {
556
556
// If using operator sets, check for non-M2 quorums
557
557
if (isUsingOperatorSets ()) {
558
- uint32 [] memory nonM2OperatorSetIds = new uint32 [](quorumNumbers.length );
559
- uint256 numNonM2Quorums;
560
-
561
- // Check each quorum's stake type
562
- for (uint256 i = 0 ; i < quorumNumbers.length ; i++ ) {
563
- uint8 quorumNumber = uint8 (quorumNumbers[i]);
564
- if (isM2Quorum[quorumNumber]) {
565
- nonM2OperatorSetIds[numNonM2Quorums++ ] = quorumNumber;
566
- }
567
- }
568
-
569
- // If any non-M2 quorums found, deregister from AVS
570
- if (numNonM2Quorums > 0 ) {
571
- // Resize array to exact size needed
572
- assembly {
573
- mstore (nonM2OperatorSetIds, numNonM2Quorums)
574
- }
575
- serviceManager.deregisterOperatorFromOperatorSets (operator, nonM2OperatorSetIds);
576
- }
558
+ _handleOperatorSetDeregistration (operator, quorumNumbers);
577
559
}
578
560
579
561
_deregisterOperator ({operator: operator, quorumNumbers: quorumNumbers});
580
562
}
581
563
}
582
564
565
+ /**
566
+ * @notice Helper function to handle operator set deregistration for non-M2 quorums
567
+ * @param operator The operator to deregister
568
+ * @param quorumNumbers The quorum numbers to check
569
+ */
570
+ function _handleOperatorSetDeregistration (address operator , bytes memory quorumNumbers ) internal {
571
+ uint32 [] memory nonM2OperatorSetIds = new uint32 [](quorumNumbers.length );
572
+ uint256 numNonM2Quorums;
573
+
574
+ // Check each quorum's stake type
575
+ for (uint256 i = 0 ; i < quorumNumbers.length ; i++ ) {
576
+ uint8 quorumNumber = uint8 (quorumNumbers[i]);
577
+ if (isM2Quorum[quorumNumber]) {
578
+ nonM2OperatorSetIds[numNonM2Quorums++ ] = quorumNumber;
579
+ }
580
+ }
581
+
582
+ // If any non-M2 quorums found, deregister from AVS
583
+ if (numNonM2Quorums > 0 ) {
584
+ // Resize array to exact size needed
585
+ assembly {
586
+ mstore (nonM2OperatorSetIds, numNonM2Quorums)
587
+ }
588
+ serviceManager.deregisterOperatorFromOperatorSets (operator, nonM2OperatorSetIds);
589
+ }
590
+ }
591
+
583
592
/**
584
593
*
585
594
* EXTERNAL FUNCTIONS - OWNER
0 commit comments