11// SPDX-License-Identifier: BUSL-1.1
22pragma solidity ^ 0.8.27 ;
33
4- import {Initializable} from "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol " ;
54import {SlasherStorage, ISlashingRegistryCoordinator} from "./SlasherStorage.sol " ;
65import {
76 IAllocationManagerTypes,
@@ -12,7 +11,7 @@ import {IStrategy} from "eigenlayer-contracts/src/contracts/interfaces/IStrategy
1211/// @title SlasherBase
1312/// @notice Base contract for implementing slashing functionality in EigenLayer middleware
1413/// @dev Provides core slashing functionality and interfaces with EigenLayer's AllocationManager
15- abstract contract SlasherBase is Initializable , SlasherStorage {
14+ abstract contract SlasherBase is SlasherStorage {
1615 /// @notice Ensures only the authorized slasher can call certain functions
1716 modifier onlySlasher () {
1817 _checkSlasher (msg .sender );
@@ -22,20 +21,12 @@ abstract contract SlasherBase is Initializable, SlasherStorage {
2221 /// @notice Constructs the base slasher contract
2322 /// @param _allocationManager The EigenLayer allocation manager contract
2423 /// @param _registryCoordinator The registry coordinator for this middleware
24+ /// @param _slasher The address of the slasher
2525 constructor (
2626 IAllocationManager _allocationManager ,
27- ISlashingRegistryCoordinator _registryCoordinator
28- ) SlasherStorage (_allocationManager, _registryCoordinator) {
29- _disableInitializers ();
30- }
31-
32- /// @notice Initializes the slasher contract with authorized slasher address
33- /// @param _slasher Address authorized to create and fulfill slashing requests
34- function __SlasherBase_init (
27+ ISlashingRegistryCoordinator _registryCoordinator ,
3528 address _slasher
36- ) internal onlyInitializing {
37- slasher = _slasher;
38- }
29+ ) SlasherStorage (_allocationManager, _registryCoordinator, _slasher) {}
3930
4031 /// @notice Internal function to execute a slashing request
4132 /// @param _requestId The ID of the slashing request to fulfill
0 commit comments