The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/solidity/contracts/interfaces/avs/vendored/IServiceManager.sol

29 lines
1.4 KiB

// SPDX-License-Identifier: BUSL-1.1
pragma solidity >=0.8.0;
import {IPaymentCoordinator} from "./IPaymentCoordinator.sol";
import {IServiceManagerUI} from "./IServiceManagerUI.sol";
/**
* @title Minimal interface for a ServiceManager-type contract that forms the single point for an AVS to push updates to EigenLayer
* @author Layr Labs, Inc.
*/
interface IServiceManager is IServiceManagerUI {
/**
* @notice Creates a new range payment on behalf of an AVS, to be split amongst the
* set of stakers delegated to operators who are registered to the `avs`.
* Note that the owner calling this function must have approved the tokens to be transferred to the ServiceManager
* and of course has the required balances.
* @param rangePayments The range payments being created
* @dev Expected to be called by the ServiceManager of the AVS on behalf of which the payment is being made
* @dev The duration of the `rangePayment` cannot exceed `paymentCoordinator.MAX_PAYMENT_DURATION()`
* @dev The tokens are sent to the `PaymentCoordinator` contract
* @dev Strategies must be in ascending order of addresses to check for duplicates
* @dev This function will revert if the `rangePayment` is malformed,
* e.g. if the `strategies` and `weights` arrays are of non-equal lengths
*/
function payForRange(
IPaymentCoordinator.RangePayment[] calldata rangePayments
) external;
}