@@ -414,6 +414,17 @@ interface IRewardsCoordinatorEvents is IRewardsCoordinatorTypes {
414414 IERC20 token ,
415415 uint256 claimedAmount
416416 );
417+
418+ /// @notice Emitted when the fee recipient is set.
419+ /// @param oldFeeRecipient The old fee recipient
420+ /// @param newFeeRecipient The new fee recipient
421+ event FeeRecipientSet (address indexed oldFeeRecipient , address indexed newFeeRecipient );
422+
423+ /// @notice Emitted when the opt in for protocol fee is set.
424+ /// @param submitter The address of the submitter
425+ /// @param oldValue The old value of the opt in for protocol fee
426+ /// @param newValue The new value of the opt in for protocol fee
427+ event OptInForProtocolFeeSet (address indexed submitter , bool indexed oldValue , bool indexed newValue );
417428}
418429
419430/// @title Interface for the `IRewardsCoordinator` contract.
@@ -431,7 +442,8 @@ interface IRewardsCoordinator is IRewardsCoordinatorErrors, IRewardsCoordinatorE
431442 uint256 initialPausedStatus ,
432443 address _rewardsUpdater ,
433444 uint32 _activationDelay ,
434- uint16 _defaultSplitBips
445+ uint16 _defaultSplitBips ,
446+ address _feeRecipient
435447 ) external ;
436448
437449 /// @notice Creates a new rewards submission on behalf of an AVS, to be split amongst the
@@ -606,6 +618,13 @@ interface IRewardsCoordinator is IRewardsCoordinatorErrors, IRewardsCoordinatorE
606618 uint16 split
607619 ) external ;
608620
621+ /// @notice Sets the fee recipient address which receives optional protocol fees
622+ /// @dev Only callable by the contract owner
623+ /// @param _feeRecipient The address of the new fee recipient
624+ function setFeeRecipient (
625+ address _feeRecipient
626+ ) external ;
627+
609628 /// @notice Sets the split for a specific operator for a specific avs
610629 /// @param operator The operator who is setting the split
611630 /// @param avs The avs for which the split is being set by the operator
@@ -643,6 +662,15 @@ interface IRewardsCoordinator is IRewardsCoordinatorErrors, IRewardsCoordinatorE
643662 uint16 split
644663 ) external ;
645664
665+ /// @notice Sets whether the submitter wants to pay the protocol fee on their rewards submissions.
666+ /// @dev Submitters must opt-in to pay the protocol fee to be eligible for rewards.
667+ /// @param submitter The address of the submitter that wants to opt-in or out of the protocol fee.
668+ /// @param optInForProtocolFee Whether the submitter wants to pay the protocol fee.
669+ function setOptInForProtocolFee (
670+ address submitter ,
671+ bool optInForProtocolFee
672+ ) external ;
673+
646674 /// @notice Sets the permissioned `rewardsUpdater` address which can post new roots
647675 /// @dev Only callable by the contract owner
648676 /// @param _rewardsUpdater The address of the new rewardsUpdater
0 commit comments