@@ -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