Skip to content

Commit 0a6fbd4

Browse files
fix: Add isControlledFacilitator to GhoBucketSteward (#429)
* feat: Add isControlledFacilitator function * fix: Remove isControlledFacilitator helper function
1 parent a8f654a commit 0a6fbd4

File tree

5 files changed

+27
-24
lines changed

5 files changed

+27
-24
lines changed

src/contracts/misc/GhoBucketSteward.sol

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ contract GhoBucketSteward is Ownable, RiskCouncilControlled, IGhoBucketSteward {
9393
return _controlledFacilitators.values();
9494
}
9595

96+
/// @inheritdoc IGhoBucketSteward
97+
function isControlledFacilitator(address facilitator) external view returns (bool) {
98+
return _controlledFacilitatorsByAddress[facilitator];
99+
}
100+
96101
/// @inheritdoc IGhoBucketSteward
97102
function getFacilitatorBucketCapacityTimelock(
98103
address facilitator

src/contracts/misc/interfaces/IGhoBucketSteward.sol

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ interface IGhoBucketSteward {
3232
*/
3333
function getControlledFacilitators() external view returns (address[] memory);
3434

35+
/**
36+
* @notice Checks if a facilitator is controlled by this steward
37+
* @param facilitator The facilitator address to check
38+
* @return True if the facilitator is controlled by this steward
39+
*/
40+
function isControlledFacilitator(address facilitator) external view returns (bool);
41+
3542
/**
3643
* @notice Returns timestamp of the facilitators last bucket capacity update
3744
* @param facilitator The facilitator address

src/test/TestGhoBucketSteward.t.sol

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,4 +212,15 @@ contract TestGhoBucketSteward is TestGhoBase {
212212
newGsmList[0] = address(GHO_GSM_4626);
213213
GHO_BUCKET_STEWARD.setControlledFacilitator(newGsmList, true);
214214
}
215+
216+
function testIsControlledFacilitator() public {
217+
address facilitator = makeAddr('FACILITATOR');
218+
address[] memory controlledFacilitators = new address[](1);
219+
controlledFacilitators[0] = facilitator;
220+
vm.prank(SHORT_EXECUTOR);
221+
GHO_BUCKET_STEWARD.setControlledFacilitator(controlledFacilitators, true);
222+
assertTrue(GHO_BUCKET_STEWARD.isControlledFacilitator(facilitator));
223+
address nonFacilitator = makeAddr('NON_FACILITATOR');
224+
assertFalse(GHO_BUCKET_STEWARD.isControlledFacilitator(nonFacilitator));
225+
}
215226
}

src/test/TestGhoStewardsForkEthereum.t.sol

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,10 @@ contract TestGhoStewardsForkEthereum is Test {
189189
newGsmList[0] = gho_gsm_4626;
190190
vm.prank(OWNER);
191191
GHO_BUCKET_STEWARD.setControlledFacilitator(newGsmList, true);
192-
assertTrue(_isControlledFacilitator(gho_gsm_4626));
192+
assertTrue(GHO_BUCKET_STEWARD.isControlledFacilitator(gho_gsm_4626));
193193
vm.prank(OWNER);
194194
GHO_BUCKET_STEWARD.setControlledFacilitator(newGsmList, false);
195-
assertFalse(_isControlledFacilitator(gho_gsm_4626));
195+
assertFalse(GHO_BUCKET_STEWARD.isControlledFacilitator(gho_gsm_4626));
196196
}
197197

198198
function testGhoCcipStewardUpdateBridgeLimit() public {
@@ -298,14 +298,4 @@ contract TestGhoStewardsForkEthereum is Test {
298298
address rateStrategyAddress = POOL_DATA_PROVIDER.getInterestRateStrategyAddress(GHO_TOKEN);
299299
return IDefaultInterestRateStrategyV2(rateStrategyAddress).getInterestRateDataBps(GHO_TOKEN);
300300
}
301-
302-
function _isControlledFacilitator(address target) internal view returns (bool) {
303-
address[] memory controlledFacilitators = GHO_BUCKET_STEWARD.getControlledFacilitators();
304-
for (uint256 i = 0; i < controlledFacilitators.length; i++) {
305-
if (controlledFacilitators[i] == target) {
306-
return true;
307-
}
308-
}
309-
return false;
310-
}
311301
}

src/test/TestGhoStewardsForkRemote.t.sol

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,10 @@ contract TestGhoStewardsForkRemote is Test {
159159
newGsmList[0] = gho_gsm_4626;
160160
vm.prank(OWNER);
161161
GHO_BUCKET_STEWARD.setControlledFacilitator(newGsmList, true);
162-
assertTrue(_isControlledFacilitator(gho_gsm_4626));
162+
assertTrue(GHO_BUCKET_STEWARD.isControlledFacilitator(gho_gsm_4626));
163163
vm.prank(OWNER);
164164
GHO_BUCKET_STEWARD.setControlledFacilitator(newGsmList, false);
165-
assertFalse(_isControlledFacilitator(gho_gsm_4626));
165+
assertFalse(GHO_BUCKET_STEWARD.isControlledFacilitator(gho_gsm_4626));
166166
}
167167

168168
function testGhoCcipStewardUpdateRateLimit() public {
@@ -348,14 +348,4 @@ contract TestGhoStewardsForkRemote is Test {
348348
address rateStrategyAddress = POOL_DATA_PROVIDER.getInterestRateStrategyAddress(GHO_TOKEN);
349349
return IDefaultInterestRateStrategyV2(rateStrategyAddress).getInterestRateDataBps(GHO_TOKEN);
350350
}
351-
352-
function _isControlledFacilitator(address target) internal view returns (bool) {
353-
address[] memory controlledFacilitators = GHO_BUCKET_STEWARD.getControlledFacilitators();
354-
for (uint256 i = 0; i < controlledFacilitators.length; i++) {
355-
if (controlledFacilitators[i] == target) {
356-
return true;
357-
}
358-
}
359-
return false;
360-
}
361351
}

0 commit comments

Comments
 (0)