@@ -571,15 +571,7 @@ contract SPRegistry is Initializable, AccessControlUpgradeable, UUPSUpgradeable,
571571 if (organization == address (0 )) revert InvalidOrganizationAddress ();
572572 if (capabilities.retrievabilityBps > 10_000 ) revert InvalidRetrievabilityBps (capabilities.retrievabilityBps);
573573 if (capabilities.indexingPct > 100 ) revert InvalidIndexingPct (capabilities.indexingPct);
574- if (minDealDurationDays > MAX_DEAL_DURATION_DAYS) {
575- revert DurationExceedsProtocolMax (minDealDurationDays, MAX_DEAL_DURATION_DAYS);
576- }
577- if (maxDealDurationDays != 0 && maxDealDurationDays > MAX_DEAL_DURATION_DAYS) {
578- revert DurationExceedsProtocolMax (maxDealDurationDays, MAX_DEAL_DURATION_DAYS);
579- }
580- if (minDealDurationDays != 0 && maxDealDurationDays != 0 && minDealDurationDays > maxDealDurationDays) {
581- revert MinDurationExceedsMax (minDealDurationDays, maxDealDurationDays);
582- }
574+ _ensureDurationLimitsValid (minDealDurationDays, maxDealDurationDays);
583575
584576 _registerProvider (provider, organization, payee);
585577
@@ -627,15 +619,7 @@ contract SPRegistry is Initializable, AccessControlUpgradeable, UUPSUpgradeable,
627619 _ensureProviderRegistered (provider);
628620 _ensureProviderNotBlocked (provider);
629621 _onlyProviderControllerOrAdmin (provider);
630- if (minDealDurationDays > MAX_DEAL_DURATION_DAYS) {
631- revert DurationExceedsProtocolMax (minDealDurationDays, MAX_DEAL_DURATION_DAYS);
632- }
633- if (maxDealDurationDays != 0 && maxDealDurationDays > MAX_DEAL_DURATION_DAYS) {
634- revert DurationExceedsProtocolMax (maxDealDurationDays, MAX_DEAL_DURATION_DAYS);
635- }
636- if (minDealDurationDays != 0 && maxDealDurationDays != 0 && minDealDurationDays > maxDealDurationDays) {
637- revert MinDurationExceedsMax (minDealDurationDays, maxDealDurationDays);
638- }
622+ _ensureDurationLimitsValid (minDealDurationDays, maxDealDurationDays);
639623
640624 SPRegistryStorage storage $ = _getSPRegistryStorage ();
641625 uint64 id = CommonTypes.FilActorId.unwrap (provider);
@@ -707,6 +691,23 @@ contract SPRegistry is Initializable, AccessControlUpgradeable, UUPSUpgradeable,
707691 }
708692 }
709693
694+ /**
695+ * @notice Ensures deal duration limits are within the protocol maximum and internally consistent
696+ * @param minDealDurationDays The minimum deal duration to validate
697+ * @param maxDealDurationDays The maximum deal duration to validate
698+ */
699+ function _ensureDurationLimitsValid (uint32 minDealDurationDays , uint32 maxDealDurationDays ) internal pure {
700+ if (minDealDurationDays > MAX_DEAL_DURATION_DAYS) {
701+ revert DurationExceedsProtocolMax (minDealDurationDays, MAX_DEAL_DURATION_DAYS);
702+ }
703+ if (maxDealDurationDays != 0 && maxDealDurationDays > MAX_DEAL_DURATION_DAYS) {
704+ revert DurationExceedsProtocolMax (maxDealDurationDays, MAX_DEAL_DURATION_DAYS);
705+ }
706+ if (minDealDurationDays != 0 && maxDealDurationDays != 0 && minDealDurationDays > maxDealDurationDays) {
707+ revert MinDurationExceedsMax (minDealDurationDays, maxDealDurationDays);
708+ }
709+ }
710+
710711 /**
711712 * @notice Ensures a provider is not blocked
712713 * @param provider The provider actor ID to check
0 commit comments