@@ -82,7 +82,10 @@ contract RateKeeperFactory is AbstractMarketFactory, IRateKeeperFactory {
8282 override (AbstractMarketFactory, IMarketFactory)
8383 returns (Call[] memory )
8484 {
85- return _installRateKeeper (rateKeeper, _getRateKeeperType (rateKeeper));
85+ if (_getRateKeeperType (rateKeeper) == "RATE_KEEPER::GAUGE " ) {
86+ return CallBuilder.build (_setFrozenEpoch (rateKeeper, false ));
87+ }
88+ return CallBuilder.build ();
8689 }
8790
8891 function onShutdownMarket (address pool )
@@ -92,7 +95,10 @@ contract RateKeeperFactory is AbstractMarketFactory, IRateKeeperFactory {
9295 returns (Call[] memory )
9396 {
9497 address rateKeeper = _rateKeeper (_quotaKeeper (pool));
95- return _uninstallRateKeeper (rateKeeper, _getRateKeeperType (rateKeeper));
98+ if (_getRateKeeperType (rateKeeper) == "RATE_KEEPER::GAUGE " ) {
99+ return CallBuilder.build (_setFrozenEpoch (rateKeeper, true ));
100+ }
101+ return CallBuilder.build ();
96102 }
97103
98104 function onUpdateRateKeeper (address pool , address newRateKeeper , address oldRateKeeper )
@@ -108,11 +114,13 @@ contract RateKeeperFactory is AbstractMarketFactory, IRateKeeperFactory {
108114 for (uint256 i; i < numTokens; ++ i) {
109115 calls[i] = _addToken (newRateKeeper, tokens[i], type_);
110116 }
111- calls = calls.extend (
112- _uninstallRateKeeper (oldRateKeeper, _getRateKeeperType (oldRateKeeper)).extend (
113- _installRateKeeper (newRateKeeper, type_)
114- ).append (_unauthorizeFactory (msg .sender , pool, oldRateKeeper))
115- );
117+ if (_getRateKeeperType (oldRateKeeper) == "RATE_KEEPER::GAUGE " ) {
118+ calls = calls.append (_setFrozenEpoch (oldRateKeeper, true ));
119+ }
120+ if (type_ == "RATE_KEEPER::GAUGE " ) {
121+ calls = calls.append (_setFrozenEpoch (oldRateKeeper, false ));
122+ }
123+ calls = calls.append (_unauthorizeFactory (msg .sender , pool, oldRateKeeper));
116124 }
117125
118126 function onAddToken (address pool , address token , address )
@@ -149,44 +157,28 @@ contract RateKeeperFactory is AbstractMarketFactory, IRateKeeperFactory {
149157 try IRateKeeper (rateKeeper).contractType () returns (bytes32 type_ ) {
150158 return type_;
151159 } catch {
152- return "RK_GAUGE " ;
160+ return "RATE_KEEPER::GAUGE " ;
153161 }
154162 }
155163
156164 function _isForbiddenConfigurationCall (address rateKeeper , bytes4 selector ) internal view returns (bool ) {
157- if (_getRateKeeperType (rateKeeper) == "RK_GAUGE " ) {
165+ if (_getRateKeeperType (rateKeeper) == "RATE_KEEPER::GAUGE " ) {
158166 return selector == IRateKeeper.addToken.selector || selector == IGaugeV3.addQuotaToken.selector
159167 || selector == IGaugeV3.setFrozenEpoch.selector || selector == bytes4 (keccak256 ("setController(address) " ));
160168 }
161169 return selector == IRateKeeper.addToken.selector ;
162170 }
163171
164- function _installRateKeeper (address rateKeeper , bytes32 type_ ) internal view returns (Call[] memory calls ) {
165- if (type_ == "RK_GAUGE " ) {
166- calls = CallBuilder.build (Call (rateKeeper, abi.encodeCall (IGaugeV3.setFrozenEpoch, false )));
167- }
168-
169- if (_isVotingContract (rateKeeper)) {
170- calls = calls.append (_setVotingContractStatus (rateKeeper, true ));
171- }
172- }
173-
174- function _uninstallRateKeeper (address rateKeeper , bytes32 type_ ) internal view returns (Call[] memory calls ) {
175- if (type_ == "RK_GAUGE " ) {
176- calls = CallBuilder.build (Call (rateKeeper, abi.encodeCall (IGaugeV3.setFrozenEpoch, true )));
177- }
178-
179- if (_isVotingContract (rateKeeper)) {
180- calls = calls.append (_setVotingContractStatus (rateKeeper, false ));
181- }
182- }
183-
184172 function _addToken (address rateKeeper , address token , bytes32 type_ ) internal pure returns (Call memory ) {
185173 return Call (
186174 rateKeeper,
187- type_ == "RK_GAUGE "
175+ type_ == "RATE_KEEPER::GAUGE "
188176 ? abi.encodeCall (IGaugeV3.addQuotaToken, (token, 1 , 1 ))
189177 : abi.encodeCall (IRateKeeper.addToken, token)
190178 );
191179 }
180+
181+ function _setFrozenEpoch (address gauge , bool status ) internal pure returns (Call memory ) {
182+ return Call (gauge, abi.encodeCall (IGaugeV3.setFrozenEpoch, status));
183+ }
192184}
0 commit comments