Skip to content

Commit 3d9c56d

Browse files
committed
[CurvePB] Make additionalGasLimit configurable
Replace the hardcoded 1000000 gas limit with a storage variable that can be set at construction and updated via setAdditionalGasLimit. Add corresponding event.
1 parent aea558b commit 3d9c56d

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

contracts/contracts/automation/CurvePoolBoosterBribesModule.sol

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,15 @@ contract CurvePoolBoosterBribesModule is AbstractSafeModule {
3030
/// @notice ETH amount sent per pool booster to cover the L1 -> L2 bridge fee
3131
uint256 public bridgeFee;
3232

33+
/// @notice Gas limit passed to manageCampaign for cross-chain execution
34+
uint256 public additionalGasLimit;
35+
3336
////////////////////////////////////////////////////
3437
/// --- Events
3538
////////////////////////////////////////////////////
3639

3740
event BridgeFeeUpdated(uint256 newFee);
41+
event AdditionalGasLimitUpdated(uint256 newGasLimit);
3842
event PoolBoosterAddressAdded(address pool);
3943
event PoolBoosterAddressRemoved(address pool);
4044

@@ -46,17 +50,20 @@ contract CurvePoolBoosterBribesModule is AbstractSafeModule {
4650
/// @param _operator Address authorized to call operator-restricted functions
4751
/// @param _pools Initial list of CurvePoolBooster addresses to manage
4852
/// @param _bridgeFee ETH amount to send per pool booster for bridge fees
53+
/// @param _additionalGasLimit Gas limit for cross-chain execution in manageCampaign
4954
constructor(
5055
address _safeContract,
5156
address _operator,
5257
address[] memory _pools,
53-
uint256 _bridgeFee
58+
uint256 _bridgeFee,
59+
uint256 _additionalGasLimit
5460
) AbstractSafeModule(_safeContract) {
5561
_grantRole(OPERATOR_ROLE, _operator);
5662
for (uint256 i = 0; i < _pools.length; i++) {
5763
_addPoolBoosterAddress(_pools[i]);
5864
}
5965
_setBridgeFee(_bridgeFee);
66+
_setAdditionalGasLimit(_additionalGasLimit);
6067
}
6168

6269
////////////////////////////////////////////////////
@@ -91,6 +98,12 @@ contract CurvePoolBoosterBribesModule is AbstractSafeModule {
9198
_setBridgeFee(newFee);
9299
}
93100

101+
/// @notice Update the additional gas limit for cross-chain execution
102+
/// @param newGasLimit New gas limit value
103+
function setAdditionalGasLimit(uint256 newGasLimit) external onlyOperator {
104+
_setAdditionalGasLimit(newGasLimit);
105+
}
106+
94107
/// @notice Default entry point to manage bribe campaigns for all registered pool boosters.
95108
/// Applies the same behavior to every pool:
96109
/// - totalRewardAmount = type(uint256).max → use all available reward tokens
@@ -175,6 +188,13 @@ contract CurvePoolBoosterBribesModule is AbstractSafeModule {
175188
emit BridgeFeeUpdated(newFee);
176189
}
177190

191+
/// @notice Internal logic to set the additional gas limit
192+
/// @param newGasLimit New gas limit value
193+
function _setAdditionalGasLimit(uint256 newGasLimit) internal {
194+
additionalGasLimit = newGasLimit;
195+
emit AdditionalGasLimitUpdated(newGasLimit);
196+
}
197+
178198
/// @notice Internal logic to manage bribe campaigns for all registered pool boosters
179199
/// @dev Iterates over all pool boosters and instructs the Safe to call `manageCampaign`
180200
/// on each one, sending `bridgeFee` ETH from the Safe's balance per call.
@@ -202,7 +222,7 @@ contract CurvePoolBoosterBribesModule is AbstractSafeModule {
202222
totalRewardAmounts[i], // totalRewardAmount, 0 = no update, type(uint256).max = use all available rewards
203223
extraDuration[i], // numberOfPeriods, 0 = no update, 1 = +1 period (week)
204224
rewardsPerVote[i], // maxRewardPerVote, 0 = no update
205-
1000000 // additionalGasLimit
225+
additionalGasLimit
206226
),
207227
0
208228
),

0 commit comments

Comments
 (0)